我想从用户的当前位置计算给定方向(以度数提供)上最近的国家(在世界地图上查看)。
我意识到这样做的一种方法是使用此处提供的公式来介入,例如,从点到点增加 5 英里,直到我最终到达一个不是用户起始国家的国家。然而,就地理编码资源的使用而言,这似乎非常低效。
你们中有人知道我可以为此使用更好的算法吗?
提前致谢。
我想从用户的当前位置计算给定方向(以度数提供)上最近的国家(在世界地图上查看)。
我意识到这样做的一种方法是使用此处提供的公式来介入,例如,从点到点增加 5 英里,直到我最终到达一个不是用户起始国家的国家。然而,就地理编码资源的使用而言,这似乎非常低效。
你们中有人知道我可以为此使用更好的算法吗?
提前致谢。
减少反向地理编码操作量的一种方法是将此问题视为边界搜索。如果您使用二分搜索算法,并对每个点进行反向地理编码,您可以通过最少的反向地理编码操作找到从当前国家到相邻国家的国家/地区的变化。
在二分搜索中,您的航向是恒定的,并且您有最小范围(5 英里)和最大范围(12,000 英里),您正在搜索边界所在的范围。然后,您对边界外的位置进行反向地理编码,以找出那里的国家/地区。一个问题是,就在边界之外可能是海洋。
我会用MKReverseGeocoding
. 检查此 SO question以获取代码示例。