据我所了解,这需要一些我不擅长的复杂数学知识。因此,我在这里寻求帮助。
有没有人有将MKMapPoint或CLLocationCoordinate2D转换为UTM值的经验?我找到了这个资源(http://www.uwgb.edu/dutchs/usefuldata/UTMFormulas.HTM),但其中的数学公式让人望而生畏。
据我所了解,这需要一些我不擅长的复杂数学知识。因此,我在这里寻求帮助。
有没有人有将MKMapPoint或CLLocationCoordinate2D转换为UTM值的经验?我找到了这个资源(http://www.uwgb.edu/dutchs/usefuldata/UTMFormulas.HTM),但其中的数学公式让人望而生畏。
http://geographiclib.sourceforge.net/html/classGeographicLib_1_1UTMUPS.html
我发现了这个网站(http://home.hiwaay.net/~taylorc/toolbox/geography/geoutm.html)。如果你查看源代码,整个转换是使用JavaScript完成的,你可以查看它并尝试将其转换为Obj-c。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”更改为地球半径的米值。当我发现这实际上起作用时,我感到有点惊讶。