根据我的阅读,这需要一些我不擅长的复杂数学。所以,我在这里问。

有人有将 MKMapPoint 或 CLLocationCooperative2D 转换为 UTM 值的经验吗?我找到了这个资源(http://www.uwgb.edu/dutchs/usefuldata/UTMFormulas.HTM)但是数学是压倒性的。

有帮助吗?

解决方案

您可以使用一个LIB做到这一点,或分析一个LIB的代码来理解算法和自己做。

这是一个C ++ LIB,没有工作: 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-C。

其他提示

我最近写了一个类,并发布了示例项目在GitHub上

UTMConverter例如为iOS

你想要的部分是一个名为UTMConverter.m文件。它具有用于从LAT变换/长到UTM反之亦然方法。

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 为地球半径的米值。当我发现这确实有效时,我感到非常惊讶。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top