Ich habe eine Mercator-Projektionskarte als JPEG und würde gerne wissen, wie man eine gegebene x, y-Koordinate mit ihrer geographischen Breite und Länge in Beziehung setzt. Ich habe mir die Gudermannsche Funktion angeschaut, aber ehrlich gesagt verstehe ich nicht, wie ich diese Funktion übernehmen und anwenden soll. Welche Eingabe erwartet sie? Die Implementierung, die ich gefunden habe (JavaScript) scheint einen Bereich zwischen -PI und PI zu nehmen, aber was ist die Korrelation zwischen meinem y-Wert in Pixeln und diesem Bereich?
Außerdem habe ich diese Funktion gefunden, die einen Breitengrad verwendet und die Kachel für Google Maps zurückgibt, die ebenfalls Mercator verwendet. Wenn ich wüsste, wie ich diese Funktion umkehren könnte, wäre ich meiner Antwort ziemlich nahe.
%Vor%Hier ist ein Code für Sie ... Lassen Sie mich wissen, wenn Sie weitere Erklärungen benötigen.
%Vor%Google usw. verwenden "sphärischen Mercator", die Mercator-Projektion mit einem sphärischen Erdmodell anstelle der langsameren und komplexeren elliptischen Gleichungen.
Die Transformationen sind als Teil des OpenLayers-Codes verfügbar:
Erich Mirabals Antwort war völlig korrekt (wenn auch nicht vollständig).
Ich habe es gerade mit einer "theoretischen 256x256 Mercator-Kachel" getestet (Googles Single-Kachel-Version einer Weltkarte).
Hier ist ein wenig mehr Code (JavaScript, aber einfach zu folgen) zu erläutern.
Ich lebe in Australien, auf einer Breite von etwa -33 °.
%Vor%152.88327883810192
Wenn Sie 152 Pixel vom oberen Rand der Kachel herunter zählen, finden Sie Australien. Ich habe auch bestätigt, dass diese Antwort korrekt ist, indem ich das Ergebnis mit bekannten Funktionen vergleiche.
Um sicher zu gehen, können wir diese Berechnung umkehren:
%Vor%Und wir werden zurückgegeben -32.99613291758226 .
Der schwierige Teil liegt nicht in der Gudermannschen Funktion, sondern in der Umwandlung zwischen zwei Skalen.
Glücklicherweise war ich ziemlich faul und hasste diese Art von Skalierungsproblemen. Ich hatte schon eine kleine Funktion, um diese unordentliche Konvertierung für mich zu machen.
%Vor%Und die JavaScript-Versionen der ursprünglichen Funktionen sind natürlich:
%Vor%Eine wichtige Anmerkung bei der Umkehrung ist, dass es keine " the mercator map" gibt, wie es bei den meisten anderen Kartenprojektionen der Fall ist. Jede vorhandene Mercator-Map ist abhängig vom eingegebenen phi-Wert unterschiedlich. Laut Wikipedia verwendet Google 85.051129, und andere Kartenanbieter verwenden 85.05113. Daher müssen die Eingabewerte für Gudermannian basierend auf z.B. GudermannianInv (85.05113).
Tags und Links math latitude-longitude mapping maps