Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 11254|Atbildi: 1

Baidu koordinātas tiek konvertētas uz WGS84 koordinātām

[Kopēt saiti]
Publicēts 11.10.2017 09:56:13 | | | |
Prasības: Konvertējiet Baidu koordinātas uz WGS84 koordinātām
Ieviešana:
Pirmkārt, ļaujiet man iepazīstināt ar daudzām sarežģītām koordinātu sistēmām Ķīnā, kā mēs visi zinām, Amerikas Savienoto Valstu GPS izmanto WGS84 koordinātas, bet Ķīnā drošības apsvērumu dēļ, kad karte tiek izlaista un publicēta, 84 koordinātas ir nelineāras un neobjektīvas, un iegūtās koordinātas sauc par GCJ02 koordinātu sistēmām, kas pazīstamas kā Marsa koordinātas. Turklāt daudzi vietējie karšu uzņēmumi, iespējams, biznesa vajadzību vai biznesa konkurences iemeslu dēļ, ir veikuši nelineāru novirzi, pamatojoties uz Marsa koordinātām, un ieguvuši savu koordinātu sistēmu. Baidu ir šāds uzņēmums. Baidu veica BD-09 sekundāro nelineāro novirzi, pamatojoties uz GCJ02, un ieguva savu Baidu koordinātu sistēmu. Tas var būt izdevīgi paša Baidu uzņēmumam, bet mums, izstrādātājiem, tas ir vienkārši kaitinoši.
Tālāk ir īss ievads koordinātu sistēmās, ko izmanto daži karšu pakalpojumu sniedzēji Ķīnā:



Pašlaik Baidu nodrošina API koordinātu konvertēšanai, http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=longitude&y=latitude
tajā
• no: Avota koordinātu sistēma (0 oriģinālajām GPS koordinātām, 2 Google koordinātām)
• uz: Konvertētās koordinātas (4 ir Baidu paša, it kā tam būtu jābūt 4)
• x: Precizitāte
• y: Platums
Atgrieztais rezultāts ir json virkne: {"error":0,"x":"MTIxLjUwMDIyODIxNDk2","y":"MzEuMjM1ODUwMjYwMTE3"}
• kļūda: ir kļūdas atzīme bits, un "0" norāda OK
• x: Baidu koordinātu sistēmas precizitāte (Base64 šifrēšana)
y: Baidu koordinātu sistēmas platums (Base64 šifrēšana);
Es apkopoju šo divu skaitļu nozīmi tiešsaistē:
http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=longitude&y=latitude
1: leņķa koordinātas, kas iegūtas ar GPS iekārtu;
2: Metriskas koordinātas, kas iegūtas ar GPS, koordinātas, kas izmantotas sogou kartēs;
3: Koordinātas, kas tiek izmantotas Google Maps, SOSO Maps, Aliyun Maps, MapABC Maps un AMAP Maps
4:3 Skaitītāja koordinātas, kas atbilst kartes koordinātām sarakstā
5: Baidu Maps izmantotās garuma un platuma koordinātas
6: Baidu Maps izmantotās metriskās koordinātas
7: kartes kartes koordinātas;
8:51 Kartes koordinātas Nav noklusējuma ir 1, kas ir koordinātas, ko iegūst GPS ierīce
Galamērķa koordinātu veidiem ir divas iespējas: 5, 6.
5: BD09LL (Baidu platuma un garuma koordinātas),
6: BD09MC (platuma un garuma koordinātas 100 grādu metros); Nē Noklusējums ir 5, t.i., bd09ll (Baidu koordinātas)

Visi iepriekš minētie tiek izmantoti, lai pārvērstu 84 koordinātas par Baidu koordinātām, zemāk runāsim par to, kā panākt koordinātu apgriezto pārveidošanu, tas ir, Baidu koordinātas tiek pārveidotas par 84 koordinātām.
Es atradu daudz algoritmu internetā, un lielākā daļa no tiem ir ierobežoti ar vienu nobīdi, tas ir, apmaiņu starp Baidu koordinātām un Marsa koordinātām, apmaiņu starp Marsa koordinātām un Zemes koordinātām utt., un Baidu koordinātas ir maz pieminētas līdz 84 koordinātām.
Šajā sakarā es vispirms mēģināju pārvērst Baidu koordinātas uz Marsa koordinātām un pēc tam pārvērst Marsa koordinātas uz Zemes koordinātām, bet rezultāts nebija apmierinošs, zemākā kļūda bija 60 metri, un lielākā bija pat vairāk nekā 600 metru kļūda, tāpēc man bija jāatsakās. Es vairs nepublicēšu algoritmu, ieinteresētie studenti var doties uz internetu, lai to atrastu paši.
Šeit es izmantoju gudru metodi, konkrētā metode ir šāda:
Baidu koordinātas un GPS koordinātu konvertēšana ir ļoti tuvu tuvumā.
Pieņemsim, ka jums ir Baidu koordinātas: x1=116.397428, y1=39.90923
Ņemiet šo koordinātu kā GPS koordinātu un iegūstiet viņa Baidu koordinātas caur saskarni: x2=116.41004950566, y2=39.916979519873

GPS koordinātas var iegūt, aprēķinot:
x = 2*x1-x2,y = 2*y1-y2
x=116,38480649434001
y = 39.901480480127。
Lai pārbaudītu šīs metodes precizitāti, testēšanai es paņēmu 14 lielāko Ķīnas pilsētu koordinātas, Ķīnas dienvidaustrumus, ziemeļrietumus un ziemeļrietumus, un rezultāti ieguva rezultātus ar 13 metru novirzi un vismaz 0,x metriem. Visaptverošā kļūda ir 6 metri. Konkrētie testa rezultāti tiks publicēti vēlāk.
Ļaujiet man uzzīmēt vienkāršu diagrammu, lai ilustrētu šo jautājumu.



G apzīmē sākotnējās nekonvertētās Zemes koordinātas;
B apzīmē Baidu koordinātas pēc G konvertēšanas, izmantojot Baidu api;
G' apzīmē koordinātas pēc punkta B konvertēšanas, izmantojot Baidu API;
Pieņemot, ka nobīdes vērtība pēc Google koordinātu konvertēšanas uz Baidu koordinātām ir maza, tad G punkta koordinātas ir pilnīgi vienādas ar
2B-G'。 Pēc pārbaudes nobīdes vērtība pēc Google koordinātu konvertēšanas uz Baidu koordinātām ir aptuveni daži simti metru, kas faktiski ir niecīga, tāpēc izmantojiet šo metodi, lai atrisinātu nobīdes bibliotēkas problēmu ar Baidu API un pēc tam ignorējiet nobīdes vērtību konvertēšanas ietekmi.
Protams, šai metodei ir arī liels trūkums, tas ir, tas prasa, lai šie divi punkti būtu vienā un tajā pašā ofseta datu bāzē, ja tas atrodas divās dažādās ofseta bibliotēkās, kļūda var būt salīdzinoši liela.
Turklāt ir vēl viena metode, kas pašlaik tiek gatavota turpmākiem pētījumiem, proti, izveidot ofseta bibliotēku un izmantot šo ofseta bibliotēku, lai vēl vairāk novērstu šo ietekmi: tā vēl ir jāizpēta.
Šeit ir tiešsaistes reklāmguvuma trūkums: Baidu tiešsaistes API konvertēšanas rīkam faktiski ir ierobežots konvertēto datu apjoms, katra atslēga var konvertēt tikai aptuveni 5,000 datu vienību, un konts var pieteikties līdz 20 atslēgām, tādēļ, ja datu apjoms ir liels, faktiski nav ieteicams izmantot šāda veida tiešsaistes konvertēšanu, kas ir arī sākotnējais nolūks izpētīt vietējo ofseta bibliotēku. Turklāt, tā kā tīmekļa puse var būt ierobežotāka, tīkla ātrums, vienlaicīgi pieprasījumi utt. var ietekmēt rezultātus un lietotāja pieredzi, tāpēc iepriekš minētās metodes ir tikai atsauce.





Iepriekšējo:Javascrip{filter}tmodule - ielādes modulis require.js
Nākamo:Izmantojiet Ajax metodi, lai ievietotu JSON datus fonā
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com