如何计算给定标题上最近的国家?

Posted

技术标签:

【中文标题】如何计算给定标题上最近的国家?【英文标题】:How do I calculate the nearest country on a given heading? 【发布时间】:2012-12-30 10:25:43 【问题描述】:

我想计算距用户当前位置在给定方向(以度数提供)上最近的国家(在世界地图上查看)。

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

你们中有人知道我可以为此使用更好的算法吗?

提前致谢。

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

好点;谢谢!我完全忘记了二分搜索。【参考方案2】:

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

【讨论】:

谢谢,但这并不能回答我的问题——我意识到我可以使用 MKReverseGeocoding,但我真正想做的是减少我的应用程序必须执行的地理编码量—— - Apple's documentation 建议每个用户操作最多只发送一个地理编码请求。

以上是关于如何计算给定标题上最近的国家?的主要内容,如果未能解决你的问题,请参考以下文章

给定经度和纬度,如何找到国家

给定纬度/经度坐标,我们如何找出城市/国家?

如何从列表中找到最近的国家

从 GEO 坐标确定国家 iso 代码

我们如何使用 Intl Tel Input 插件从给定号码获取国家代码?

如何获得地理编码器在 LatLng 国家语言上的结果?