Ios 将CLLocationCoordinate2D转换为iphone/ipad坐标系

Ios 将CLLocationCoordinate2D转换为iphone/ipad坐标系,ios,cllocation,coordinate,Ios,Cllocation,Coordinate,我试图转换cllocation manager返回的坐标,并在ipad屏幕上绘制它们。我试过了,但没有正确标记点 CGSize screenSize = _tilingView.bounds.size; CGFloat SCALE = MIN(screenSize.width, screenSize.height) / (2.0 * EARTH_RADIUS); CGFloat OFFSET = MIN(screenSize.width, screenSize.height) / 2.0; CG

我试图转换cllocation manager返回的坐标,并在ipad屏幕上绘制它们。我试过了,但没有正确标记点

CGSize screenSize = _tilingView.bounds.size;
CGFloat SCALE = MIN(screenSize.width, screenSize.height) / (2.0 * EARTH_RADIUS);
CGFloat OFFSET = MIN(screenSize.width, screenSize.height) / 2.0;
CGFloat x = EARTH_RADIUS * cos(latLong.x) * cos(latLong.y);
CGFloat y = EARTH_RADIUS * cos(latLong.x) * sin(latLong.y);

_tilingview是我的视图,我有一个自定义的室内地图,我想在上面显示用户的位置

这种方法不起作用,因为地球不是一个完美的球体,它在两个轴上的半径并不相同。此外,纬度是非线性的——取决于地球形状所形成的角度——地图看起来是线性的,因为它们使用投影(通常是墨卡托投影)将(几乎)球体的表面投影到平面上

MapKit
框架中有一些辅助函数,可以在地理坐标和视图坐标之间进行转换-
mkmeterspermappointattlatude
mkmappointforcoordination
。在WWDC 2014-“”上也有一个很好的会议,讨论了这些函数以及如何使用它们将地理坐标转换为线性坐标