Question

D'après ce que j'ai lu cela prend un peu de mathématiques compliquées que je ne suis pas bon. Donc, je demande ici.

Est-ce que quelqu'un a l'expérience d'une conversion MKMapPoint ou CLLocationCoordinate2D à une valeur UTM? J'ai trouvé cette ressource ( http://www.uwgb.edu/dutchs/usefuldata/UTMFormulas. HTM ) mais le calcul est écrasante.

Était-ce utile?

La solution

Vous pouvez utiliser une lib pour le faire, ou analyser le code d'un lib pour comprendre l'algorithme et de le faire vous-même.

Ceci est un c ++ lib qui fait le travail: http://geographiclib.sourceforge.net/html/

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

J'ai trouvé ce site (http://home.hiwaay.net/~taylorc/toolbox/geography/geoutm.html). Si vous regardez le code source, la conversion entière est effectuée en utilisant JavaScript, vous pouvez avoir un coup d'oeil et essayer de convertir en Obj-c.

Autres conseils

J'ai écrit récemment une classe pour cela et a affiché un exemple de projet sur GitHub

UTMConverter exemple pour iOS

La partie que vous voulez est un fichier appelé UTMConverter.m. Il a des procédés pour la conversion de latitude / longitude pour UTM et vice-versa.

MKMapViewZoom semble avoir des méthodes de classe qui peuvent convertir entre-plat (carte géométrique) &-carte courbes coordonnées (géographiques), bien que je ne les ai pas testé sur. Quelqu'un me donne un coup de pouce si cela fonctionne réellement

//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

de la documentation ici

Mise à jour:

Ceci est affolant, mais pour obtenir ce code source de la classe au travail j'ai eu essentiellement avec précision pour extraire les méthodes dans mon propre domaine essentiellement, puis retirez les parties du code faisant référence MERCATOR_OFFSET et changement MERCATOR_RADIUS à la valeur mètres du le rayon de la terre. J'étais un peu, ok, très surpris quand j'ai découvert ce travail réellement effectuées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top