2

我有一个带有兴趣点的数据库,它们都有一个地址。

我想知道从给定位置获取所有附近POI的方法/名称/调用是什么。

我知道我至少需要将所有地址转换为 LAT / LON 坐标,但我的问题是:

对于给定的 LAT / LONG,我如何从数据库/数组中按距离获取附近的 POI,例如:

你在这里 0,0半径 2 公里内最近的 POI是:

  • POI A(1.1公里处)
  • POI C(1.3公里处)
  • POI F(1.9 公里处)

我不知道我应该研究什么才能得到我想要的:-(

任何帮助是极大的赞赏。 谢谢

4

1 回答 1

2

我想知道从给定位置获取所有附近 POI 的方法/名称/调用是什么。

使用半正弦公式很容易计算两个纬度/经度坐标之间的大圆距离。您可能需要进一步阅读并查看Chris Veness在计算纬度/经度点之间的距离、方位等方面的实现。

对于给定的 LAT / LONG,我如何从数据库/数组中按距离获取附近的 POI?

如果您只有几个 POI,您可以简单地计算从您的点到每个 POI 的大圆距离。然后只需按距离对结果列表进行排序。

但是,如果您将拥有许多 POI,则应考虑使用具有空间索引功能的数据库。MySQLPostgreSQLSQL Server 2008都具有地理空间功能(本机或通过扩展),其中包括空间索引和 hasrsine 公式的实现。

于 2010-04-18T14:55:27.930 回答