Frage

Von dem, was ich gelesen habe, dies dauert einige komplizierte Mathe, dass ich nicht gut. Also, ich bitte hier.

Hat jemand Erfahrung eine MKMapPoint oder CLLocationCoordinate2D zu einem UTM-Wert konvertieren? Ich fand diese Ressource ( http://www.uwgb.edu/dutchs/usefuldata/UTMFormulas. HTM ), aber die Mathematik ist überwältigend.

War es hilfreich?

Lösung

Sie könnten eine lib verwenden, das zu tun, oder den Code eines lib analysieren den Algorithmus zu verstehen und es selbst zu tun.

Dies ist ein c ++ lib dass der Job nicht: http://geographiclib.sourceforge.net/html/

http://geographiclib.sourceforge.net/html/classGeographicLib_1_1UTMUPS.html

Ich fand diese Website (http://home.hiwaay.net/~taylorc/toolbox/geography/geoutm.html). Wenn Sie sich den Quellcode schauen, wird die gesamte Umwandlung mit Hilfe von JavaScript getan, können Sie einen Blick auf sie haben und versuchen, Obj-c zu konvertieren.

Andere Tipps

Ich habe vor kurzem eine Klasse für diese geschrieben und veröffentlicht ein Beispielprojekt auf GitHub

UTMConverter Beispiel für iOS

Der Teil, den Sie wollen, ist eine Datei mit dem Namen UTMConverter.m. Es hat Methoden zur Umwandlung von lat / UTM lang und umgekehrt.

MKMapViewZoom erscheint einige Klassenmethoden zu haben, die zwischen flachen Karte (geometrische) & gekrümmt-Karte (geografische) Koordinaten umwandeln kann, obwohl ich sie nicht getestet werden. Jemand geben Sie mir einen Daumen nach oben, wenn dies tatsächlich funktioniert

//convert from WGS84 (geographic coordinates) to UTM (geometric coordinates)
+ (double)longitudeToPixelSpaceX(double)pixelX
+ (double)latitudeToPixelSpaceY(double)pixelY

//convert from UTM to WGS84
+ (double)pixelSpaceXToLongitude(double)longitude
+ (double)pixelSpaceYToLatitude(double)latitude

einige Dokumentation hier

UPDATE:

Dies ist zum Verrücktwerden, sondern um Klasse dieser Quellcode zur Arbeit zu kommen genau im Wesentlichen, hatte ich im Grunde die Methoden in meine eigene Domain zu extrahieren und entfernen Sie die Teile des Codes Referenzierung MERCATOR_OFFSET & Change MERCATOR_RADIUS auf den Meter Wert der Erdradius. Ich war irgendwie, ok, sehr überrascht, als ich entdeckte dies tatsächlich funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top