Google Maps China — when Maps APIs fail the journey
Google Maps China is usually the wrong primary map stack for ordinary Mainland China users. Remap to Amap, Baidu Maps, or Tencent Maps — start with Amap unless WeChat or indoor/POI jobs say otherwise.
Google Maps China is usually the wrong primary map stack for ordinary Mainland China users. Coverage on Google’s China row is not a working user journey — client Maps JavaScript API hosts typically fail on local Mainland China networks. Chinaready Landscape labels Google Maps Platform Unavailable for Mainland China use. Remap storefront maps to a China-native API — Amap, Baidu Maps, or Tencent Maps. For ordinary Mainland China client maps, start with Amap unless WeChat Mini Program / Tencent location is already on the path (then Tencent Maps) or indoor / mall / POI breadth is the named job (then Baidu Maps). Keep Google only for residual Google-world jobs.

What Google Maps China means for the user journey
Hard names your stack decision will use:
- Google Maps / Google Maps Platform — Google’s consumer maps app and the developer Google Maps Platform / Maps JavaScript API used for storefinders, delivery maps, and in-product location UI. Loading the JS API uses Google hosts such as
maps.googleapis.com(Load the Maps JavaScript API). Landscape’s Google Maps Platform alternatives page is the SKU verdict: Unavailable in Mainland China — plan a domestic maps API for product integration, not a Google widget with a China geo toggle. - Coverage table ≠ Mainland China client reach — Google’s Maps Platform coverage lists feature availability by country/region, including a CN / China row for tiles, geocoding, and directions. That is data coverage for the China geography, not proof that a user on a local Mainland China network can load the script or tiles.
- Failure mode on the journey — The HTML page can return 200 while the map never paints. Chinaready’s Stack Break Lab measured Google Maps JS as Blocked from a Beijing node — a grey box that never tiles (google-maps.html demo; sibling inventory: which parts of your stack break first).
- Where Google Maps still appears — Hong Kong / Taiwan and other outside-Mainland China audiences; export or English-first demand; niche internationally minded users; server-side geocoding or static jobs from a host that can still reach Google — not mainstream Mainland China storefront maps.
- Remap is a China-native maps API, not one vendor — For ordinary Mainland China users, rule Google out as primary and shortlist Amap, Baidu Maps, and Tencent Maps on the same Landscape page — start with Amap unless WeChat or indoor/POI jobs say otherwise. Baidu Maps China is one remap stack comparison after this fork — Baidu is not the only option. Apple Maps can be a strong iPhone consumer substitute (Mainland China base data is Amap-licensed); it is not a drop-in Google Maps Platform SDK. iOS system maps are a sibling Landscape question: Apple MapKit.
- Common myth — “Google has China on the coverage table, so Google Maps in China works.” A CN row is not a client journey. “Pick Baidu because it is the China map” is the twin myth — Amap and Tencent Maps are also on the product shortlist.
Vocabulary first. Next: what must be true before Google Maps stays in scope at all.
What must be true before Google Maps stays in scope
Missing a clear map job stops your product team before a “keep Google Maps, add China” sprint is real work.
| Precondition | Why your process stalls |
|---|---|
| Map job locked — ordinary Mainland China user maps vs Hong Kong / Taiwan / export / niche Google-world | Wrong job keeps Google as Plan A while Amap / Baidu / Tencent never start |
| Client vs server path named — browser / app SDK tiles vs server-side geocoding from a reachable host | A working HQ backend lookup is reported as “maps work in China” while the storefinder stays blank |
Honest host assumption — do not assume maps.googleapis.com behaves like other markets for Mainland China users on local networks | Plans built on everyday Google Maps usage invent a journey that is not there |
| Supplementary budget / scope cap if Google stays for residual jobs | Unlimited “China maps” on Google crowds out the remap SDK, keys, and POI work |
| Mainland China vantage proof on the actual map hosts | Overseas QA “passes” while China users see a grey box — same class as website not working in China |
| China-native vendor named when Mainland China users are the job — Amap, Baidu Maps, or Tencent Maps (not “maps somewhere in China”) | Stopping Google Plan A without a chosen China API just pauses storefinder and logistics UI |
Product teams usually cannot treat “ship the same Maps JavaScript API globally” as the Mainland China plan. Job clarity and remapping are the floor. SKU orientation lives on Google Maps Platform alternatives.
From map job to remap or residual Google
| Stage | Decision / outcome |
|---|---|
| 1. Name the map job | Ordinary Mainland China users at scale, or a residual Google-world audience (Hong Kong / Taiwan / export / niche / server-side only)? |
| 2. If Mainland China ordinary reach | Rule Google Maps out as primary; open the Google Maps Platform alternatives shortlist |
| 3. Pick the China-native product API | Amap, Baidu Maps, or Tencent Maps — see the selection gate below. Baidu Maps China if Baidu is the chosen stack; Amap / Tencent still need their own developer rails |
| 4. If a residual Google job remains | Keep Google Maps as a capped supplementary line with clear geo and client path — not the China storefront map |
| 5. Prove hosts from Mainland China | DNS / TLS / waterfall (or China Network Diagnostics) on Maps JS and tile hosts — not only the marketing HTML host |
| 6. Cut over the China client, then re-test | China-native maps API on the Mainland China journey; do not leave maps.googleapis.com on the critical path. A later plugin or “global maps component” can restore the grey box |
Hard gate — primary vs residual
Necessity: confusing these two jobs wastes the quarter — either you underfund a China-native maps API, or you keep optimizing a Google Maps China widget that never becomes a Mainland China user journey.
| Job | Google Maps role | What must already be true |
|---|---|---|
| Ordinary Mainland China user maps (storefinder, delivery, in-app location) | Not primary — remap | China-native vendor named (Amap, Baidu Maps, or Tencent Maps); keys and POI path in motion |
| Hong Kong / Taiwan / export / English-first / niche Google-world | May remain supplementary | Geo, language, and measurement match that residual audience; Mainland China Plan A is still a China maps API |
“Maps API China” via Google key + region=CN only | Myth as Mainland China plan | Host reachability from the user network — not a region parameter |
Hard gate — which China-native maps API
A Maps API China plan that still loads Google client hosts is not a China journey. After the fork, Landscape is the product shortlist — distill the three product APIs the Google Maps Platform alternatives page maps for developers:
| China-native option | Start here when | Product entry (confirm live) |
|---|---|---|
| Amap | Usual start — driving / transit routing, real-time traffic, commute and lifestyle discovery as the in-product job | Amap Open Platform |
| Tencent Maps | WeChat Mini Program or Tencent-ecosystem location sharing is already on the path (same GCJ-02 family; less coordinate wringing) | Tencent Maps / Tencent Location Services developer rails |
| Baidu Maps | Indoor / mall navigation, AI landmark and crowd-flow, or rich nearby POI is the named job — on the shortlist, not the automatic default after Google fails | Deep dive: Baidu Maps China |
| Apple Maps / MapKit | iPhone consumer English UI (Mainland China data licensed from Amap) — not a Google Maps Platform SDK substitute | Apple MapKit |
Expect usage-based map API fees on Amap and Tencent (and Baidu) developer platforms. Confirm entity, key type, and coordinate policy before you freeze an SDK — same class of stall as any China-native maps remap.
Why Google coverage still fails the Mainland China journey
Engineering constraints you must design around:
| Constraint | What breaks | What to do |
|---|---|---|
| Client hosts | Maps JS and tiles load from Google hosts such as maps.googleapis.com. The page HTML can return 200 while the widget stays a grey box. Landscape labels Google Maps Platform Unavailable. Stack Break Lab measured Maps JS Blocked from a Beijing node. region=CN and a valid key do not change the host. | Prove the host from Mainland China vantage, then remap. Do not treat “try Google, then Amap on timeout” as Plan A. |
| Coordinate systems | Google client maps commonly use WGS-84. Amap and Tencent Maps product maps commonly use GCJ-02. Baidu Maps commonly uses BD-09. Mixed pins offset. | Convert at the adapter boundary at render time. Keep one authoritative store format in the product API. |
| SDK surfaces | Namespaces differ (google.maps, AMap, Tencent TMap / historical qq.maps, BMapGL). Auth, tiles, and events differ. | Do not dual-stack Google and a China vendor at the vendor SDK API. Put an internal provider interface in front and select one implementation by region. |
| Keys, domain, filing stall | China map vendors usually bind production keys to package name, domain, and/or signing cert. Consoles are Mandarin. Quota and domain policy follow the vendor’s then-current rules. | Treat missing domain binding or a filed-domain stall as a PM flag early. That is a common go-live stall — not a claim that maps are legally impossible without ICP. |
| Region switch | Browser locale is not a China switch. | Prefer edge or server country, or an account region. Client IP last. Lazy-load one SDK. Timeout → static map or “map unavailable,” not a hang and not Google-as-fallback Plan A. |
China row on the coverage table ≠ Mainland China consumer stack. Feature dots for CN do not restore everyday Google Maps usage on local Mainland China networks. Landscape’s Unavailable label is the product-intent version of the same fact.
API key + region bias ≠ tile load. region changes result bias (Load the Maps JavaScript API); it does not move script and tiles onto a China-reachable host.
Server geocode OK → false confidence. A backend in Singapore or the US can still call Google while the Mainland China browser never imports the Maps library. Users describe “map broken”; engineering sees 200s on the page host.
Storefinder component reused globally → silent China drop-off. One shared React / WebView map widget keeps Google on the China path after “the rest of the site” was accelerated.
Reporting residual Google traffic as China maps working → wrong stack. Hong Kong / Taiwan or VPN-using testers are not ordinary Mainland China users at scale.
Access acceleration without dependency rewrite → partial win. Faster HTML delivery does not resurrect blocked Maps JS hosts. Fix the map dependency class, then tune delivery — see website accessible in China.
Defaulting to Baidu without a shortlist → wrong remap. Amap is the usual start for ordinary Mainland China client maps. Baidu Maps belongs on the shortlist when indoor / mall / POI breadth is the named job — not as the automatic default after Google fails. Tencent Maps when WeChat is already on the path.
Remap the web map at an internal boundary
Do not scatter google.maps.Marker (or the China-vendor equivalents) through feature components. For a Maps API China cutover, feature code should talk only to an internal provider. Region — from the edge or server, or from an account setting, not from browser locale — selects Google vs the China-native implementation. Lazy-load one SDK script per session.
interface IMapProvider {
init(container, options): Promise<void>;
setCenter(lat, lng): void;
addMarker(options): MarkerHandle;
removeMarker(handle): void;
geocode(address): Promise<LatLng>;
reverseGeocode(latlng): Promise<string>;
destroy(): void;
}
Google Maps, Amap, Tencent Maps, and Baidu Maps (if chosen) each implement this behind a factory. Coordinate conversion lives in the adapter, at render time. On React or Vue, expose one <MapView> (or equivalent) so product teams never import a vendor SDK. A lint rule that bans google.maps / AMap outside an adapters directory is enough practice — do not treat that as a published eslint config.
If the vendor script times out, show a static map or an explicit unavailable state. Do not hang on a spinner, and do not fall back to Google as Plan A for Mainland China users.
Native and cross-platform map views are the expensive cut
Use the same strategy on iOS, Android, and cross-platform apps: a protocol or interface, injected from a startup region flag (remote config preferred). The expensive part is UI. If screens embed GMSMapView or Android MapView (or Compose equivalents) directly, wrap them in AppMapView so a China SDK can swap. That wrap is usually costlier than the web adapter.
React Native’s react-native-maps is not an Amap provider. Keep the China plugin behind your own <AppMap>. Flutter should keep AutoNavi’s official map and location packages behind AppMapWidget. Do not let plugin props leak into feature code.
China vendor keys need package name and signing-cert whitelist, the same class of restriction as a Google Maps key. That is release engineering. Do not conflate it with ICP filing or app filing — both belong on the PM and legal checklist; they are not one ticket.
Cutover:
- Extract the internal interface; Google behavior unchanged.
- Implement the chosen China adapter (usually Amap); prove it on a Mainland China network.
- Region-gate from the server or edge; run the same product assertions against both adapters.
What blocks teams that keep Google Maps as Plan A
- Geo-toggle thinking — Product treats “China” as a Maps Platform region expand before a China-native maps API exists.
- Confusing coverage with market access — “China is listed” is read as “China users can load the map.”
- HQ laptop QA — Testers outside Mainland China never see the grey box, so the ticket never opens.
- Hong Kong / Taiwan conflated with Mainland China — Outside-Mainland China performance is reported as “Google Maps in China working.”
- Plugin defaults that re-inject Google Maps — CMS storefinder, tag-manager embeds, and shared design-system map atoms restore
maps.googleapis.com. - Dual vendor SDK — Product tries to keep
google.mapsandAMapon one component API. Namespaces and coordinates will not match. - No owner for the adapter — The remap stalls because nobody owns the internal
IMapProviderboundary, only “pick a China map brand.” - No owner for the remap SDK — The fork stalls because nobody owns a chosen China-native maps console (Amap, Baidu, or Tencent), POI data, or key restrictions.
- Single-vendor assumption — “China maps = Baidu” skips Amap and Tencent Maps even when routing or WeChat journeys would pick them.
- Native app SDK left on Google Play services Maps — Web was remapped; the China Android / iOS build still waits on Google Maps.
What “fixed” means: Mainland China users see tiles, search, and markers on the journeys you claim; one map SDK is on that client path; Google vendor calls are gone from it; feature code talks only to the internal provider; residual Google jobs are named and capped; the China-native vendor is named (usually Amap, else Tencent Maps or Baidu Maps as the job requires). Overseas-only Google Maps with a China storefront claim is not fixed.
China landing partner when Maps APIs fail the journey
Most product teams exploring Mainland China entry need a China landing partner once they stop treating Google Maps as Plan A — to open and operate the chosen China-native maps API (Amap, Baidu Maps, or Tencent Maps; usually Amap first), clear entity or partner contracting, Mandarin developer-console ops, Mainland China proof, and the cutover so storefinder and logistics UI actually paint. Your team still owns map UX, which journeys must work, and which vendor wins the shortlist; the partner path makes that remapped China stack executable when those rails are not already in-house. Keeping a capped Google line for residual outside-Mainland China or niche jobs does not remove the need for that China landing partner on the primary maps path.
What we can offer?
Google Maps China work for Mainland China is a primary-vs-residual decision before any “keep the same Maps API” sprint. Chinaready helps your product team remap in-product maps to rails that can actually load for Mainland China users — Amap, Baidu Maps, or Tencent Maps (usually Amap first), not a Google tile hope:
- China Readiness Assessment — Decide whether Google Maps is residual only, which client journeys must paint in Mainland China, and which China-native vendor, host, SDK, and entity gates sit on the critical path before a remap date.
- China Access Acceleration — Keep China-facing pages and conversion paths reachable and fast from Mainland China vantage so remapped storefronts do not die on offshore-only HTML while maps still fail.
- China Product Hosting — Place China-critical pages and APIs where ICP adjacency, entity consistency, and maps destinations stay coherent after the Google client hosts leave the journey.
- Mobile App Distribution — Align China app builds with the chosen China-native map SDK on the install path — not mistake a Google Maps SDK on a global binary for a China maps plan.
Contact us when you need a Mainland China maps remap before you staff another Google Maps China widget sprint.
Frequently asked questions
Does Google Maps in China work for ordinary users?
Usually no on local Mainland China networks. The consumer Google Maps app and client Maps JavaScript API hosts are typically unreachable, so storefinder and in-product maps render as a grey box that never tiles. Coverage for the China region in Google’s table is not the same as a working user journey. Landscape labels Google Maps Platform Unavailable for Mainland China use.
What is a Google Maps alternative in China for product maps?
Remap the Mainland China client journey to a China-native maps API — start with Amap unless WeChat or indoor/POI jobs select otherwise. Landscape shortlists Amap, Baidu Maps, and Tencent Maps for product maps (Apple Maps is an iPhone consumer path, not a Google Maps Platform drop-in). The Baidu Maps China Guide is one remap stack comparison — Baidu is not the only vendor.
Can a Maps API China key or region=CN fix the grey box?
No. A valid Google Maps Platform key and a China region bias still load script and tiles from Google hosts such as maps.googleapis.com. If those hosts never connect from the user’s network, the widget stays blank. Prove the host from Mainland China vantage, then remap.
When does Google Maps still make sense around a China program?
Residual Google-world jobs — Hong Kong / Taiwan or other outside-Mainland China audiences, export or English-first demand, niche internationally minded users, or server-side geocoding from a reachable host outside the China client path. Cap those lines. Do not report them as Mainland China storefront maps working.
How should we pick among Amap, Baidu Maps, and Tencent Maps?
Start with Amap for ordinary Mainland China client maps. Choose Tencent Maps when WeChat Mini Program or Tencent location is already on the path. Choose Baidu Maps when indoor, mall, or POI breadth is the named job — see the Baidu Maps China Guide. Do not share one vendor SDK API between Google Maps and a China provider; put an internal map provider in front. Landscape holds the product shortlist; this article is the remap fork.
Can product teams finish a China maps remap without Mainland China ops?
Usually no. China-native maps consoles, key binding, and Mainland China proof sit on Mandarin rails most global teams lack. Web remap is an internal provider interface; native remap is usually costlier because map views must be wrapped. That is when a China landing partner becomes the realistic path.


