iOS: как конвертировать MKMapPoint или CLLocationCoordinate2D в UTM? - PullRequest
4 голосов
/ 19 ноября 2010

Из того, что я прочитал, вытекает сложная математика, в которой я не очень хорош.Итак, я спрашиваю здесь.

Есть ли у кого-нибудь опыт преобразования MKMapPoint или CLLocationCoordinate2D в значение UTM?Я нашел этот ресурс (http://www.uwgb.edu/dutchs/usefuldata/UTMFormulas.HTM), но математика подавляющая.

Ответы [ 3 ]

6 голосов
/ 09 июля 2012

Я недавно написал для этого класс и разместил пример проекта на GitHub

Пример UTMConverter для iOS

Часть, которую вы хотите, это файл с именем UTMConverter.m. У него есть методы для преобразования из lat / long в UTM и наоборот.

2 голосов
/ 19 ноября 2010

Вы можете использовать одну библиотеку для этого или проанализировать код одной библиотеки, чтобы понять алгоритм и сделать это самостоятельно.

Это библиотека C ++, которая выполняет свою работу: http://geographiclib.sourceforge.net/html/

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

Я нашел этот веб-сайт (http://home.hiwaay.net/~taylorc/toolbox/geography/geoutm.html). Если вы посмотрите на исходный код, все преобразования выполняются с использованием JavaScript, вы можете посмотреть его и попробовать преобразовать в Obj-с.

1 голос
/ 23 февраля 2014

MKMapViewZoom, похоже, имеет некоторые методы класса, которые могут преобразовывать координаты плоской (геометрической) и кривой карты (географической), хотя я их не проверял.Кто-то подскажет мне, если это действительно работает

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

некоторая документация здесь

ОБНОВЛЕНИЕ:

Это сводит с ума, но для того, чтобы исходный код этого класса работал правильно, мне пришлось в основном извлечь методы в свой собственный домен, затем удалите части кода, ссылающиеся на MERCATOR_OFFSET и измените MERCATOR_RADIUS на значение в метрах радиуса Земли.Я был немного удивлен, когда обнаружил, что это действительно работает.

...