2010-04-18 23 views
2

我有一個有興趣點的數據庫,都有一個地址。如何獲得附近的POI

我想知道什麼是方法/名/調用從給定位置獲得所有附近的POI。

我明白,我需要我所有的地址轉換爲緯度/經度座標至少,但我的問題是:

對於給定LAT/LONG如何從數據庫/陣列得到的是什麼樣的POI附近通過距離,例如:

你的位置0,0 在2公里半徑最近的POI有:

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

我不知道我應該考慮得到什麼,我想:-(

任何幫助是極大的讚賞。 謝謝

回答

2

我想知道的是什麼方法/名/調用從給定的位置讓附近所有的POI。

計算緯度great-circle distance兩者之間/經度座標易與haversine formula。您可能想要進一步閱讀並查看Chris Veness在Calculate distance, bearing and more between Latitude/Longitude points處的實現。

對於給定的LAT/LONG,我如何從數據庫/數組中獲得哪些POI靠近距離?

如果你只有少數的興趣點,你可以簡單地計算從你的點到每個興趣點的大圓距離。然後簡單地按距離排序結果列表。

但是,如果您將擁有多個POI,則應該考慮使用具有spatial indexing功能的數據庫。 MySQLPostgreSQLSQL Server 2008都具有地理空間特徵(本地或通過擴展),其中包括空間索引和半正式公式的實現。