【问题标题】:Convert CLLocationCoordinate2D to iphone/ipad coordinate system将 CLLocationCoordinate2D 转换为 iphone/ipad 坐标系
【发布时间】:2014-07-17 22:58:58
【问题描述】:

我正在尝试转换 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 是我的视图,我有一个自定义室内地图,我想在上面显示用户位置

【问题讨论】:

    标签: ios cllocation coordinate


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-23
      • 2011-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多