Почему Google Maps показывает неверную точку в Китае — разбираемся с GCJ-02 и BD-09
Если вы когда-нибудь открывали GPS-координату в Китае и видели, что метка на карте смещена на сотни метров, вы сталкивались с GCJ-02 — национальным стандартом обфускации координат Китая. Каждый картографический сервис в материковом Китае по закону обязан применять это смещение, а карты Baidu добавляют сверху еще один проприетарный слой. Конвертер координат на fastool.io мгновенно исправляет смещения, но понимание причин и математики важно для разработчиков, GIS-специалистов и всех, кто пользуется GPS в Китае.
Разберитесь с WGS84 — глобальным GPS-стандартом
WGS84 (Всемирная геодезическая система 1984) — система координат GPS-спутников и большинства международных карт (Google Maps за пределами Китая, OpenStreetMap, Apple Maps). Координата WGS84 (39.9042, 116.4074) ставит вас на площадь Тяньаньмэнь. Глобальная точность WGS84 — несколько метров, и это «истинная» опора: все остальные системы координат здесь — намеренное искажение WGS84.
Примените смещение GCJ-02 («марсианские координаты»)
По китайскому закону (закон о геодезии и картографии) все цифровые карты в материковом Китае должны использовать GCJ-02, который добавляет к координатам WGS84 нелинейное, зависящее от точки смещение в 100–700 метров. Координата WGS84 (39.9042, 116.4074) может превратиться примерно в (39.9085, 116.4121) в GCJ-02 — метка сдвинется примерно на 500 метров на восток. Именно поэтому GPS-трек в Китае при наложении на китайский картографический сервис выглядит сходящим с дорог. Конвертер координат на fastool.io применяет стандартизированный обратный алгоритм для любой точки Китая.
Конвертируйте GCJ-02 и BD-09 для карт Baidu
Карты Baidu поверх GCJ-02 накладывают собственное шифрование, которое называется BD-09. Координата GCJ-02 смещается еще раз — обычно еще на 50–150 метров — и превращается в координату BD-09, которую принимает API Baidu. Если вы делаете приложение с показом координат в Китае, цепочка такая: показание GPS (WGS84) → GCJ-02 (Gaode/Amap, Tencent Maps) → BD-09 (Baidu Maps). Конвертер координат fastool.io обслуживает все три системы в обоих направлениях в один клик.
Проверьте точность конвертации по опорным точкам
После конвертации всегда сверяйте результат с известной опорной точкой. У Запретного города в Пекине хорошо задокументирована координата WGS84 (39.9163, 116.3972); ее эквивалент в GCJ-02 — примерно (39.9205, 116.4018). Введите значение WGS84 в конвертер, выберите WGS84 → GCJ-02 и убедитесь, что результат совпадает с ожидаемым значением GCJ-02 в пределах ±5 метров. Для проверки BD-09 сравнивайте с координатами той же достопримечательности, показанными картами Baidu. Если расхождение больше 10 метров, перепроверьте точность ввода: даже ошибка широты в 0,0001° на местности — это примерно 11 метров. Конвертер использует стандартную реализацию алгоритма GCJ-02, сверенную с открытым эталоном EvilTransform, что обеспечивает субметровую точность для гражданских задач.
FAQ
- Почему в Китае используют GCJ-02 вместо WGS84?
- Китайский закон о геодезии и картографии 2002 года требует от всех внутренних картографических сервисов применять обфускацию координат ради государственной безопасности. Обязательным стандартом стал GCJ-02 (в обиходе — «марсианские координаты»). Международные сервисы вроде Google Maps обязаны применять GCJ-02 при показе карт в границах Китая. За пределами материкового Китая Google Maps использует стандартный WGS84 — поэтому одни и те же координаты оказываются в разных точках в зависимости от того, смотрите ли вы на карту из Китая или снаружи.
- Влияет ли GPS-смещение на такие приложения, как WeChat или DiDi?
- Да, все китайские приложения внутри используют GCJ-02 или BD-09. Когда вы делитесь меткой из WeChat (он на GCJ-02), а друг открывает ее в Google Maps за пределами Китая (он на WGS84), метка окажется смещенной на 100–700 метров. Конвертер координат fastool.io это исправляет: выберите направление GCJ-02 → WGS84, введите координаты из WeChat и получите корректную точку WGS84 для внешних карт.
- Можно ли обойти смещение через спутниковые снимки?
- Нет — спутниковые снимки китайских картографических провайдеров (Baidu, Gaode, Tencent) тоже привязаны к GCJ-02, то есть смещены сами изображения. Если наложить сырые GPS-треки на спутниковую подложку GCJ-02, трек будет идти сквозь здания. Надежный способ один — конвертировать координаты до нанесения на карту: GPS (WGS84) → GCJ-02 для наложения на китайские карты или GCJ-02 → WGS84 для экспорта координат китайских карт в международные инструменты.
Похожие гайды
Источники
- [1]Wikipedia — Restrictions on Geographic Data in China (GCJ-02 origin)— Wikipedia
- [2]Baidu Maps Open Platform — BD09 Coordinate System— Baidu Maps
- [3]OpenStreetMap Wiki — GCJ-02 Coordinate Offset Challenge— OpenStreetMap Foundation
- [4]NASG — National Administration of Surveying, Mapping and Geoinformation of China (Surveying and Mapping Law)— National Administration of Surveying, Mapping and Geoinformation (NASG)