Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 11254|Odgovoriti: 1

Baidu koordinate se pretvorijo v koordinate WGS84

[Kopiraj povezavo]
Objavljeno na 11. 10. 2017 09:56:13 | | | |
Zahteve: Pretvorite Baidu koordinate v WGS84
Implementacija:
Najprej naj predstavim veliko zapletenih koordinatnih sistemov na Kitajskem; kot vsi vemo, ameriški GPS uporablja koordinate WGS84, medtem ko je na Kitajskem zaradi varnostnih razlogov ob objavi in izdaji zemljevida 84 koordinat nelinearnih in pristranskih, pridobljene koordinate pa imenujemo GCJ02 koordinatni sistemi, splošno znani kot marsovske koordinate. Poleg tega je veliko domačih kartografskih podjetij, morda zaradi poslovnih potreb ali razlogov za konkurenco, izvedlo nelinearno odstopanje na podlagi marsovskih koordinat in pridobilo svoj koordinatni sistem. Baidu je takšno podjetje. Baidu je izvedel sekundarno nelinearno pristranskost BD-09 na podlagi GCJ02 in pridobil svoj Baidu koordinatni sistem. To je morda koristno za Baidujevo podjetje, a za nas razvijalce je preprosto nadležno.
Spodaj je kratek uvod v koordinatne sisteme, ki jih uporabljajo nekateri ponudniki kartografskih storitev na Kitajskem:



Trenutno Baidu ponuja API za pretvorbo koordinat, http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=longitude&y=latitude
v to
• iz: Izvorni koordinatni sistem (0 za izvirne GPS koordinate, 2 za Google koordinate)
• v: Pretvorjene koordinate (4 je Baidujeva, kot da mora biti 4)
• x: Natančnost
• y: Zemljepisna širina
Vrnjeni rezultat je niz json: {"error":0,"x":"MTIxLjUwMDIyODIxNDk2","y":"MzEuMjM1ODUwMjYwMTE3"}
• napaka: je bit z oznako napake, "0" pa pomeni OK
• x: Natančnost Baidu koordinatnega sistema (Base64 šifriranje)
y: Zemljepisna širina koordinatnega sistema Baidu (šifriranje Base64);
Pomen teh dveh številk sem zbral na spletu:
http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=longitude&y=latitude
1: Kotne koordinate, pridobljene z GPS opremo;
2: Metrične koordinate, pridobljene z GPS, koordinate, uporabljene v Sogou zemljevidih;
3: Koordinate, uporabljene za Google Maps, SOSO Maps, Aliyun Maps, MapABC Maps in AMAP Maps
4:3 Metrične koordinate, ki ustrezajo koordinatam preslikave na seznamu
5: Koordinate zemljepisne dolžine in širine, ki jih uporabljajo Baidu Maps
6: Metrične koordinate, ki jih uporablja Baidu Maps
7: koordinate zemljevida na mapi;
8:51 Koordinate na zemljevidu Ni privzete vrednosti 1, ki so koordinate, pridobljene z GPS napravo
Za tipe odredišnih koordinat sta na voljo dve možnosti: 5, 6.
5: BD09LL (Baidu koordinate zemljepisne širine in dolžine),
6: BD09MC (koordinate zemljepisne širine in dolžine v 100 stopinjah); Ne. Privzeto je 5, torej bd09ll (Baidu koordinate)

Vse zgoraj navedeno se uporablja za pretvorbo 84 koordinat v Baidu koordinate, spodaj pa si poglejmo, kako doseči obratno pretvorbo koordinat, torej Baidu koordinate se pretvorijo v 84 koordinat.
Na internetu sem našel veliko algoritmov, večina jih je omejenih na en odmik, torej zamenjavo med Baidu koordinatami in Marsovimi koordinatami, izmenjavo med Marsovimi in Zemeljskimi koordinatami itd., in Baidu koordinate do 84 koordinat je zelo malo omenjenih.
V zvezi s tem sem najprej poskušal pretvoriti Baidujeve koordinate v marsovske, nato pa marsovske koordinate v zemeljske, a rezultat ni bil zadovoljiv, najmanjša napaka je bila 60 metrov, največ pa več kot 600 metrov napake, zato sem moral obupati. Algoritma ne bom več objavljal, zainteresirani študenti ga lahko sami najdejo na internetu.
Tukaj uporabljam pametno metodo, specifična metoda je naslednja:
Baidu koordinate in pretvorba GPS koordinat so zelo blizu na kratkih razdaljah.
Predpostavimo, da imate Baidu koordinate: x1=116.397428, y1=39.90923
To koordinato vzemi kot GPS koordinato in pridobi njegove Baidu koordinate preko vmesnika: x2=116.41004950566, y2=39.916979519873

Koordinate GPS lahko dobimo z izračunom:
x = 2*x1-x2,y = 2*y1-y2
x=116.38480649434001
y=39.901480480127。
Da bi preveril natančnost te metode, sem za testiranje vzel koordinate 14 večjih mest na Kitajskem, jugovzhodu, severozahodu in severozahodu Kitajske, rezultati pa so pokazali odklon 13 metrov in najmanj 0,x metra. Celovita napaka je 6 metrov. Specifični rezultati testov bodo objavljeni kasneje.
Naj narišem preprost diagram, da ponazorim to težavo.



G predstavlja izvirne nepretvorjene zemeljske koordinate;
B predstavlja Baidu koordinate po pretvorbi G preko Baidu api;
G' predstavlja koordinate po tem, ko je točka B pretvorjena preko Baidu API;
Če predpostavimo, da je vrednost zamika po pretvorbi Google koordinat v Baidu koordinate majhna, so G-točkovne koordinate popolnoma enake
2B-G'。 Po preverjanju je vrednost zamika po pretvorbi Google koordinat v Baidu približno nekaj sto metrov, kar je dejansko zanemarljivo, zato uporabite to metodo za rešitev problema knjižnice zamikov z Baidujevim API-jem in nato ignorirajte vpliv pretvorbe vrednosti zamika.
Seveda ima ta metoda tudi veliko slabost, saj zahteva, da sta ti dve točki v isti bazi podatkov zamikov; če je ta v dveh različnih knjižnicah zamikov, je napaka lahko razmeroma velika.
Poleg tega se trenutno pripravlja še ena metoda za nadaljnje raziskave, in sicer vzpostavitev knjižnice odmikov in uporaba te knjižnice za nadaljnje odpravo tega vpliva: še vedno je treba preučiti.
Tukaj je slabost spletne konverzije: Baidu orodje za spletno pretvorbo API dejansko omejuje količino pretvorbe podatkov, vsak ključ lahko pretvori le približno 5.000 podatkov, račun pa lahko zaprosi za do 20 ključev, zato če je količina podatkov velika, uporaba takšne spletne pretvorbe pravzaprav ni priporočljiva, kar je tudi prvotni namen preučevanja lokalne knjižnice odmika. Poleg tega, ker je spletna stran lahko bolj omejena, lahko hitrost omrežja, sočasne zahteve itd. vplivajo na rezultate in uporabniško izkušnjo, zato so zgornje metode le za referenco.





Prejšnji:Javascrip{filter}tmodule - load module require.js
Naslednji:Uporabite metodo Ajax za POST JSON podatke v ozadje
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com