将CLLocationCoordinate2D转换为iphone / ipad坐标系

时间:2014-07-17 22:58:58

标签: 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;
CGFloat x = EARTH_RADIUS * cos(latLong.x) * cos(latLong.y);
CGFloat y = EARTH_RADIUS * cos(latLong.x) * sin(latLong.y);

_tilingview是我的观点,我有一个自定义室内地图,我想在其中显示用户位置

1 个答案:

答案 0 :(得分:0)

这种方法不起作用,因为地球不是一个完美的球体 - 它在两个轴上都没有相同的半径。此外,纬度是非线性的 - linear distance varies取决于由于地球的形状而产生的角度 - 地图看起来是线性的,因为它们使用投影 - 通常是墨卡托投影 - 来将(几乎)球体的表面投射到平坦表面上。

MapKit框架中有一些帮助函数可以在地理坐标和视图坐标之间进行转换 - MKMetersPerMapPointAtLatitudeMKMapPointForCoordinate。在WWDC 2014上也有一个很好的会议 - ' Taking Core Location Indoors'它涵盖了这些功能以及它们如何用于从地理坐标转换为线性坐标