【问题标题】:Calculating a location coordinate a certain distance from another coordinate计算距另一个坐标一定距离的位置坐标
【发布时间】:2012-04-25 01:31:28
【问题描述】:

我有一个CLLoctionCoordinate2D,我想弄清楚在给定距离之外的点是什么。例如,让我们使用 100 英里。所以我想计算它的北、南、东、西各 100 英里的点。

东方和西方很容易。我将两个坐标都转换为MKMapPoints 并使用distanceInMeters*MKMapPointsPerMeterAtLatitude(latitude)。这适用于东方和西方,因为纬度是恒定的。

但是,这不适用于北方和南方。在北方,它低估了,在南方,它低估了(因为MKMapPointsPerMeterAtLatitude随着你的移动而变化)。如何计算南北的这些点?

【问题讨论】:

  • 你不能用 CLLocation distanceFromLocation: 方法循环检查真实距离吗?在计算机周期中成本应该不会太高。
  • 我考虑过,但我希望找到更优雅的东西。

标签: iphone mkmapview mapkit cllocation


【解决方案1】:

每纬度有 60 海里。这也适用于经度,但仅限于赤道。要计算以海里为单位的经度距离,请乘以经度度数 * 60nm * cos(以弧度为单位的纬度)的距离。

用 lat lon 计算您的新点(北 100 英里,南 100 英里等),而不是 MKMapPoints,然后将您的 lat/lon (CLLocationCoordinate2D ?) 点转换为 MKMapPoints。

【讨论】:

    【解决方案2】:

    纬线始终保持恒定的角度,从地球的核心测量,这有点像它们的点。所以你需要做的是计算它们之间的距离,然后用它来获得南北 100 英里,然后得到地图点。地球表面距离的公式将在线某处,可能以米或公里为单位。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      • 1970-01-01
      • 2011-10-01
      • 2010-10-27
      • 2021-04-05
      • 2014-12-16
      相关资源
      最近更新 更多