Почему Google Maps показывает неверное местоположение в Китае — Понимание GCJ-02 и BD-09

Если вы когда-либо открывали GPS-координату в Китае и обнаруживали, что метка карты смещена на сотни метров, вы столкнулись с GCJ-02 — национальным стандартом запутывания координат Китая. Каждый картографический сервис внутри материкового Китая по закону обязан применять это смещение, а Baidu Maps добавляет второй проприетарный слой поверх. Конвертер координат на fastool.io мгновенно исправляет эти смещения, но понимание причин их существования и математики необходимо для разработчиков, ГИС-специалистов и всех, кто ориентируется в Китае с GPS.

Данные не сохраняютсяЛокальный расчётБесплатноМгновенные результаты
  1. Поймите WGS84 — глобальный стандарт GPS

    WGS84 (Всемирная геодезическая система 1984) — система координат, используемая спутниками GPS и большинством международных карт (Google Maps за пределами Китая, OpenStreetMap, Apple Maps). Координата WGS84, например (39.9042, 116.4074), помещает вас на площадь Тяньаньмэнь. WGS84 точен в пределах нескольких метров глобально и является «истинным» эталоном — каждая другая обсуждаемая здесь система координат является намеренным искажением WGS84.

  2. Примените смещение GCJ-02 (Марсианские координаты)

    Согласно китайскому законодательству (Закон о геодезии и картографии), все цифровые карты, публикуемые в материковом Китае, должны использовать GCJ-02, который применяет нелинейное, зависящее от местоположения смещение к координатам WGS84. Смещение составляет от 100 до 700 метров и варьируется в зависимости от места. Координата WGS84 (39.9042, 116.4074) может стать примерно (39.9085, 116.4121) в GCJ-02 — сдвигая метку на ~500 метров к востоку. Вот почему ваш GPS-трек в Китае кажется уходящим с дорог при наложении на китайский картографический сервис. Конвертер координат на fastool.io использует стандартизированный алгоритм обратного преобразования для коррекции этого для любой точки в Китае.

  3. Конвертируйте между GCJ-02 и BD-09 для Baidu Maps

    Baidu Maps применяет дополнительное проприетарное шифрование поверх 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 обрабатывает все три направления вперёд и назад одним кликом.

  4. Проверьте точность конвертации по известным опорным точкам

    После конвертации координат всегда проверяйте результат по известной опорной точке. Запретный город в Пекине имеет хорошо документированную координату WGS84 (39.9163, 116.3972) — её эквивалент GCJ-02 примерно (39.9205, 116.4018). Введите значение WGS84 в конвертер, выберите WGS84 → GCJ-02 и подтвердите, что вывод соответствует ожидаемому значению GCJ-02 в пределах ±5 метров. Для проверки BD-09 сравните с отображаемыми координатами Baidu Maps для того же ориентира. Если результаты отклоняются более чем на 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. [1]Wikipedia — Restrictions on Geographic Data in China (GCJ-02 origin)Wikipedia
  2. [2]Baidu Maps Open Platform — BD09 Coordinate SystemBaidu Maps
  3. [3]OpenStreetMap Wiki — GCJ-02 Coordinate Offset ChallengeOpenStreetMap Foundation
  4. [4]NASG — National Administration of Surveying, Mapping and Geoinformation of China (Surveying and Mapping Law)National Administration of Surveying, Mapping and Geoinformation (NASG)

guides.common.cityTryLabel