Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 11254|Відповідь: 1

Координати Baidu конвертуються у координати WGS84

[Копіювати посилання]
Опубліковано 11.10.2017 09:56:13 | | | |
Вимоги: Конвертувати координати Baidu у координати WGS84
Реалізація:
Перш за все, дозвольте представити багато складних систем координат у Китаї: як ми всі знаємо, GPS США використовує координати WGS84, але в Китаї, з міркувань безпеки, коли карту публікують і публікують, 84 координати є нелінійними та зміщеними, а отримані координати називаються системами координат GCJ02, відомими як координати Марса. Крім того, багато вітчизняних картографічних компаній, можливо, через бізнес-потреби або певні причини конкуренції, здійснили нелінійне відхилення на основі марсіанських координат і отримали власну систему координат. Baidu — це справжня компанія. Baidu здійснила вторинне нелінійне зміщення BD-09 на основі GCJ02 і отримала власну систему координат Baidu. Це може бути корисно для компанії Baidu, але для нас, розробників, це просто дратує.
Нижче наведено короткий вступ до координатних систем, які використовують деякі постачальники картографічних послуг у Китаї:



Наразі Baidu надає API для конвертації координат http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=longitude&y=latitude
у це місце
• від: Джерела координат (0 для оригінальних GPS-координат, 2 для Google)
• до: Конвертовані координати (4 — це власна координата Baidu, ніби це має бути 4)
• x: Точність
• y: широта
Отриманий результат — це json-рядок: {"error":0,"x":"MTIxLjUwMDIyODIxNDk2","y":"MzEuMjM1ODUwMjYwMTE3"}
• помилка: це біт помилки, а "0" означає OK
• x: Точність системи координат Baidu (шифрування Base64)
y: широта системи координат Baidu (шифрування Base64);
Я зібрав значення цих двох чисел онлайн:
http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=longitude&y=latitude
1: Кутові координати, отримані GPS-обладнанням;
2: Метричні координати, отримані за допомогою GPS, координати, що використовуються в картах sogou;
3: Координати, що використовуються для Google Maps, SOSO Maps, Aliyun Maps, MapABC та AMAP Maps
4:3 Координати метра, що відповідають координатам карти у списку
5: Координати довготи та широти, які використовують Baidu Maps
6: Метричні координати, які використовують Baidu Maps
7: координати карти на смужці карти;
8:51 Координати карти Жодна за замовчуванням не є 1, тобто координатами, отриманими GPS-пристроєм
Для типів координат призначення є два варіанти: 5, 6.
5: BD09LL (координати широти та довготи Байду),
6: BD09MC (координати широти та довготи у 100 градусах метрів); Ні. За замовчуванням 5, тобто bd09ll (координати Baidu)

Усі наведені вище використовуються для конвертації 84 координат у координати Baidu, нижче давайте поговоримо про те, як досягти зворотного перетворення координат, тобто координати Baidu конвертуються у 84 координати.
Я знайшов багато алгоритмів в Інтернеті, і більшість з них обмежені одним зсувом, тобто обміном між координатами Байду і координатами Марса, обміном координатами Марса і координатами Землі тощо, і майже немає згадок про координати Байду на 84 координати.
У цьому контексті я намагався спочатку перетворити координати Байду на координати Марса, а потім на координати Марса в координати Землі, але результат був незадовільним: найменша похибка становила 60 метрів, а найбільша — навіть понад 600 метрів, тож довелося здатися. Я більше не буду публікувати алгоритм, зацікавлені студенти можуть самостійно знайти його в Інтернеті.
Тут я використовую розумний метод, конкретний метод такий:
Координати Baidu та перетворення GPS-координат дуже близькі на близьких відстанях.
Припустимо, у вас є координати Baidu: x1=116.397428, y1=39.90923
Візьміть цю координату як GPS-координату і отримайте його координати Baidu через інтерфейс: x2=116.41004950566, y2=39.916979519873

Координати GPS можна отримати за допомогою розрахунку:
x = 2*x1-x2,y = 2*y1-y2
x=116.38480649434001
y=39.901480480127。
Щоб перевірити точність цього методу, я взяв координати 14 великих міст Китаю, південного сходу, північного заходу та північного заходу Китаю для тестування, і результати отримали відхилення 13 метрів і мінімум 0,x метрів. Загальна похибка становить 6 метрів. Конкретні результати тестів будуть опубліковані пізніше.
Дозвольте намалювати просту схему, щоб проілюструвати цю проблему.



G позначає початкові неконвертовані координати Землі;
B позначає координати Baidu після перетворення G через Baidu api;
G' позначає координати після того, як точка B конвертується через Baidu API;
Припускаючи, що значення зсуву після конвертації координат Google у координати Baidu є малим, то координати точки G ідеально дорівнюють
2B-G'。 Після верифікації значення зсуву після конвертації Google координат у Baidu становить близько кількох сотень метрів, що фактично незначно, тому використовуйте цей метод для вирішення проблеми бібліотеки зсуву за допомогою власного API Baidu, а потім ігноруйте вплив конвертації зміщень.
Звісно, цей метод також має великий недолік: вимагає, щоб ці дві точки були в одній базі даних зміщення; якщо він розташований у двох різних бібліотеках з зсувом, похибка може бути відносно великою.
Крім того, наразі готується ще один метод для подальших досліджень — створення офсетної бібліотеки та використання цієї бібліотеки для подальшого усунення цього впливу: вона ще належить до вивчення.
Ось недолік онлайн-конверсії: інструмент онлайн-конвертації API Baidu фактично має обмеження на обсяг конвертованих даних, кожен ключ може конвертувати лише близько 5 000 даних, а обліковий запис може подавати заявку на до 20 ключів, тому якщо обсяг даних великий, не рекомендується використовувати такий тип онлайн-конвертації, що також є початковою метою вивчення локальної офсетної бібліотеки. Крім того, оскільки веб-сторона може бути більш обмеженою, швидкість мережі, одночасні запити тощо можуть впливати на результати та користувацький досвід, тому наведені вище методи є лише для довідки.





Попередній:Javascrip{filter}tmodule - модуль завантаження require.js
Наступний:Використовуйте метод Ajax для POST JSON-даних у фоновий режим
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com