如何计算给定航向上最近的国家/地区?

时间:2012-12-30 10:25:44

标签: ios mapkit geospatial core-location geography

我想根据用户当前位置计算给定方向(以度为单位)的最近国家/地区(在世界地图上查看)。

我意识到这样做的一种方法是使用提供here的公式来介入,例如,从点到点的5英里增量,直到我最终到达不是用户的起始国家的国家。但是,在使用地理编码资源方面,这似乎非常低效。

您是否知道我可以使用的更好的算法?

提前致谢。

2 个答案:

答案 0 :(得分:1)

减少反向地理编码操作量的一种方法是将此问题视为搜索边框。如果您使用binary search algorithm并对每个点进行反向地理编码,则可以找到国家/地区从当前国家/地区更改为相邻国家/地区的最小数量的反向地理编码操作。

在二分搜索中,您的航向是恒定的,并且您具有最小范围(5英里)和最大范围(12,000英里),您正在搜索边界所在的范围。然后你反转地理编码一个位于边界之外的位置,以找出那里的国家。一个问题是,在边界之外可能是海洋。

答案 1 :(得分:0)

我会使用MKReverseGeocoding。请查看this SO question以获取代码示例。