我想根据用户当前位置计算给定方向(以度为单位)的最近国家/地区(在世界地图上查看)。
我意识到这样做的一种方法是使用提供here的公式来介入,例如,从点到点的5英里增量,直到我最终到达不是用户的起始国家的国家。但是,在使用地理编码资源方面,这似乎非常低效。
您是否知道我可以使用的更好的算法?
提前致谢。
答案 0 :(得分:1)
减少反向地理编码操作量的一种方法是将此问题视为搜索边框。如果您使用binary search algorithm并对每个点进行反向地理编码,则可以找到国家/地区从当前国家/地区更改为相邻国家/地区的最小数量的反向地理编码操作。
在二分搜索中,您的航向是恒定的,并且您具有最小范围(5英里)和最大范围(12,000英里),您正在搜索边界所在的范围。然后你反转地理编码一个位于边界之外的位置,以找出那里的国家。一个问题是,在边界之外可能是海洋。
答案 1 :(得分:0)
我会使用MKReverseGeocoding
。请查看this SO question以获取代码示例。