Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 11254|Antwort: 1

Baidu-Koordinaten werden in WGS84-Koordinaten umgerechnet

[Link kopieren]
Veröffentlicht am 11.10.2017 09:56:13 | | | |
Anforderungen: Baidu-Koordinaten in WGS84-Koordinaten umwandeln
Implementierung:
Zunächst möchte ich viele komplizierte Koordinatensysteme in China vorstellen: Wie wir alle wissen, verwendet das US-GPS WGS84-Koordinaten, aber in China sind aus Sicherheitsgründen bei der Veröffentlichung der Karte die 84 Koordinaten nichtlinear und verzerrt, und die erhaltenen Koordinaten werden GCJ02-Koordinatensysteme genannt, allgemein bekannt als Mars-Koordinaten. Darüber hinaus haben viele inländische Kartenunternehmen, vielleicht aus geschäftlichen Gründen oder aus Gründen des Wettbewerbs, eine nichtlineare Abweichung auf Basis der Mars-Koordinaten durchgeführt und ihr eigenes Koordinatensystem erhalten. Baidu ist so ein Unternehmen. Baidu führte BD-09 eine sekundäre nichtlineare Vorspannung auf Basis von GCJ02 durch und erhielt ein eigenes Baidu-Koordinatensystem. Das mag für Baidus eigenes Unternehmen von Vorteil sein, aber für uns Entwickler ist es einfach nervig.
Im Folgenden finden Sie eine kurze Einführung in die Koordinatensysteme, die von einigen Kartendienstanbietern in China verwendet werden:



Derzeit stellt Baidu eine API zur Koordinatenumrechnung bereit, http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=longitude&y=latitude
Damit hinein
• von: Quellkoordinatensystem (0 für die ursprünglichen GPS-Koordinaten, 2 für Google-Koordinaten)
• zu: Umgerechnete Koordinaten (4 ist Baidus eigene, als müsste das 4 sein)
• x: Präzision
• y: Breitengrad
Das zurückgegebene Ergebnis ist eine json-Zeichenkette: {"error":0,"x":"MTIxLjUwMDIyODIxNDk2","y":"MzEuMjM1ODUwMjYwMTE3"}
• Fehler: ist das Fehlermarkierungsbit, und "0" zeigt OK an
• x: Genauigkeit des Baidu-Koordinatensystems (Base64-Verschlüsselung)
y: Koordinatensystem der Breitengrad des Baidu (Base64-Verschlüsselung);
Ich habe die Bedeutung dieser beiden Zahlen online gesammelt:
http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=longitude&y=latitude
1: Winkelkoordinaten, die von GPS-Geräten erhalten werden;
2: Metrische Koordinaten, die mit GPS erhalten werden, Koordinaten, die in Sogou-Karten verwendet werden;
3: Koordinaten, die für Google Maps, SOSO Maps, Aliyun Maps, MapABC Maps und AMAP Maps verwendet werden
4:3 Die Meterkoordinaten, die den Koordinaten der Karte in der Liste entsprechen
5: Die von Baidu Maps verwendeten Längen- und Breitengradkoordinaten
6: Metrische Koordinaten, die von Baidu Maps verwendet werden
7: Koordinaten der Mapbar-Karte;
8:51 Kartenkoordinaten Keine Standardkoordinate ist 1, was die vom GPS-Gerät erhaltenen Koordinaten entspricht
Für Zielkoordinatentypen gibt es zwei Optionen: 5, 6.
5: BD09LL (Baidu-Breiten- und Längenkoordinaten),
6: BD09MC (Breiten- und Längengradkoordinaten in 100 Grad); Nein. Standard ist 5, also bd09ll (Baidu-Koordinaten).

Alle oben genannten Koordinaten werden verwendet, um 84 Koordinaten in Baidu-Koordinaten umzurechnen; im Folgenden sprechen wir darüber, wie man die umgekehrte Umrechnung von Koordinaten erreicht, das heißt, Baidu-Koordinaten werden in 84 Koordinaten umgewandelt.
Ich habe viele Algorithmen im Internet gefunden, und die meisten sind auf einen Offset beschränkt, also den Austausch zwischen Baidu-Koordinaten und Mars-Koordinaten, den Austausch zwischen Mars- und Erdkoordinaten usw., und es gibt kaum Erwähnungen von Baidu-Koordinaten zu 84 Koordinaten.
In diesem Zusammenhang versuchte ich, zuerst die Baidu-Koordinaten in Mars-Koordinaten umzuwandeln und dann die Mars-Koordinaten in Erd-Koordinaten umzuwandeln, aber das Ergebnis war nicht zufriedenstellend, der niedrigste Fehler lag bei 60 Metern, der höchste war sogar mehr als 600 Meter Fehler, also musste ich aufgeben. Ich werde den Algorithmus nicht mehr posten, interessierte Studierende können ihn selbst ins Internet suchen.
Hier verwende ich eine clevere Methode, die spezifische Methode ist wie folgt:
Die Baidu-Koordinaten und die GPS-Koordinatenumwandlung sind auf kurze Entfernungen sehr nah beieinander.
Angenommen, Sie haben Baidu-Koordinaten: x1=116,397428, y1=39,90923
Nehmen Sie diese Koordinate als GPS-Koordinate und erhalten Sie seine Baidu-Koordinaten über die Schnittstelle: x2=116.41004950566, y2=39.916979519873

Die Koordinaten des GPS können durch Berechnung ermittelt werden:
x = 2*x1-x2,y = 2*y1-y2
x=116.38480649434001
y=39.901480480127。
Um die Genauigkeit dieser Methode zu überprüfen, nahm ich die Koordinaten von 14 Großstädten in China, Südosten, Nordwesten und Nordwesten Chinas, für Tests, und die Ergebnisse ergaben die Ergebnisse mit einer Abweichung von 13 Metern und mindestens 0,x Metern. Der Gesamtfehler beträgt 6 Meter. Die genauen Testergebnisse werden später veröffentlicht.
Lassen Sie mich ein einfaches Diagramm zeichnen, um dieses Problem zu veranschaulichen.



G steht für die ursprünglichen, nicht umgewandelten Erdkoordinaten;
B stellt die Baidu-Koordinaten nach der Umwandlung von G durch das Baidu-API dar;
G' stellt die Koordinaten dar, nachdem Punkt B über die Baidu-API umgewandelt wurde;
Angenommen, der Versatzwert nach der Umwandlung von Google-Koordinaten in Baidu-Koordinaten ist klein, dann sind die G-Punkt-Koordinaten perfekt gleich
2B-G'。 Nach der Verifizierung beträgt der Versatzwert nach der Umwandlung von Google-Koordinaten in Baidu-Koordinaten etwa einige hundert Meter, was tatsächlich vernachlässigbar ist; verwenden Sie diese Methode, um das Problem der Offset-Bibliothek mit Baidus eigener API zu lösen, und ignorieren Sie dann die Auswirkungen der Umwandlung von Offset-Werten.
Natürlich hat diese Methode auch einen großen Nachteil, nämlich dass diese beiden Punkte in derselben Offset-Datenbank liegen müssen; wenn sie sich in zwei verschiedenen Offset-Bibliotheken befinden, kann der Fehler relativ groß sein.
Darüber hinaus wird derzeit eine weitere Methode für weitere Forschung vorbereitet, nämlich die Einrichtung einer Offset-Bibliothek und der Nutzung dieser Offset-Bibliothek, um diese Auswirkungen weiter zu beseitigen: Sie muss noch untersucht werden.
Hier ist der Nachteil der Online-Konvertierung: Das Baidu Online-API-Konvertierungstool hat tatsächlich eine Begrenzung für die Menge der konvertierten Daten, jeder Schlüssel kann nur etwa 5.000 Datenstücke konvertieren, und ein Konto kann bis zu 20 Schlüssel beantragen, sodass bei großer Datenmenge diese Art der Online-Konvertierung nicht empfohlen wird, was auch die ursprüngliche Absicht der lokalen Offset-Bibliothek war. Außerdem können Netzwerkgeschwindigkeit, gleichzeitige Anfragen usw., da die Webseite stärker eingeschränkt sein kann, die Ergebnisse und das Nutzererlebnis beeinflussen, sodass die oben genannten Methoden nur als Referenz dienen.





Vorhergehend:Javascrip{filter}tmodule - load module require.js
Nächster:Verwenden Sie die Ajax-Methode, um JSON-Daten in den Hintergrund zu POST
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com