2011-05-04 55 views
0

我正在編寫一個Android應用程序,該應用程序應該從我的SQL服務器下載一堆地址,將它們反向地理編碼,將它們全部與我當前位置進行比較,然後返回距離我最近的那個,而不是幾何形狀,但我是最短的駕駛距離之一。如何找到離我最近的谷歌地圖上的點?

我設法讓顛倒的地理編碼正常工作,但是當我運行我的程序幾次時,我在谷歌上打了OVER_QUERY_LIMIT。不用說,我的數據庫中有很多地址。

我知道我可以通過快速和骯髒的方式來做到這一點,通過比較我當前位置和我的地址的經度和緯度,而不是將其與實際駕駛距離進行比較來查看哪個地址距離我最近。問題在於,這個應用程序將用於有相當多的湖泊驅動的地區,並且使用該方法可能會返回相當多的愚蠢結果。

我該如何避免這種情況一再發生?我可以通過查看我的所有地址來呈現Google,只需進行一次比較?我真的需要這個幫助。

回答

1

實際上,您將不得不查詢一個路由服務(不一定是Google地圖,據我所知Cloudmade也爲您提供了路由;肯定還有更多)來獲取駕車路線到您周圍的每個景點,然後選擇最接近的一個。這是一個非常糟糕的做法,因爲您的請求數量非常有限。

根據Google Maps API TOS(第10.1.3段),您並不總是被允許這樣做。

我在類似的情況下做的是存儲所有POI的座標,並查看最接近的lat/lng範圍。

+0

我會研究Cloudmate,他們可能會有不同的使用條款比谷歌。謝謝! – 2011-05-04 12:15:53

+0

他們使用OpenStreetMaps,但他們沒有提供關於POI和街道地址的信息。可能迄今爲止我發現的最好的反向地理編碼來自ESRI提供商,但這是一個痛苦,因爲它們不提供任何全球性的東西。 – 2011-05-04 12:19:09

相關問題