2012-07-27 58 views
1

有沒有Google Maps API的方法,我可以在特定郵政編碼的給定半徑(英里)內找到所有紅色氣球點(固定在我的谷歌地圖上的地址)?如何使用谷歌地圖API搜索給定半徑的郵政編碼中的所有點?

例如...

  • 第一個輸入框提示你輸入郵政編碼。在鍵入。

  • 第二輸入盒(帶<選項剖面框>)詢問您 以英里,10英里20英里半徑,30 miles..etc

  • 然後單擊提交

  • 然後谷歌地圖顯示所有的地址(這是從一個 JSON文件存儲),在谷歌地圖上的紅色氣球。

在網上有免費的學習資料,可以幫助我建立類似的東西嗎?

我一直在閱讀谷歌地圖API的東西,並沒有找到任何可以提供這個例子。

謝謝!

回答

2

這裏有您需要按照實現這個兩個高級步驟:

1)你想那郵政編碼(或以多種不同形式的地址)轉換爲緯度和經度座標使用! Google Geocoder API。

2)動態創建一個GET請求,基於用戶輸入的距離(5英里10英里等查詢你的數據庫的腳本),像這樣:

var searchUrl = 'phpsqlajax_search.php?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius; 

看我的回答這個相關的問題,所以你可以採取用戶輸入和地理編碼的地址:Store locatore, how to use/input my postion?

谷歌地圖API提供了廣泛的文檔,查找數據庫中最接近的項目,以一定的經度和緯度座標。它可以在這裏找到:https://developers.google.com/maps/articles/phpsqlsearch_v3

注意:本文檔使用PHP,Javascript和MySQL。

+0

就是這樣,我沒有爲這個項目準備PHP或MySQL。我試圖用javascript和json來做到這一點。該教程真的讓我惱火,因爲如果你不使用PHP和MySQL。如果您處於Microsoft環境中,該怎麼辦?或者如果你依靠json來存儲你的地址信息而不是數據庫。似乎應該有更多的選擇,如何去... – blackhawk 2012-07-27 18:16:43

+0

你從哪裏得到的標記是加載到地圖上? – 2012-07-27 18:19:44

+0

至於標記 - 我在黑暗中試圖用json加載我的標記 - http://blog.sofasurfer.org/2011/06/27/dynamic-google-map-markers-via-simple -json-file/ – blackhawk 2012-07-27 18:28:00

2

當您只需要一個近似值和一個快速結果時,您還可以嘗試填充空間曲線,即空間索引。看例如xkcd漫畫的互聯網地圖。它使用希爾伯特曲線從互聯網打印地圖。然後,您可以使用曲線來轉換地理位置並放鬆最近鄰居搜索。點數據類型和空間索引在許多數據庫引擎中使用相同的曲線。

這裏有一個JavaScript希爾伯特曲線:https://github.com/chrisdew/jshilbert。 這裏有一篇關於空間索引的博客:http://blog.notdot.net/2009/11/Damn-Cool-Algorithms-Spatial-indexing-with-Quadtrees-and-Hilbert-Curves。我寫了一個PHP類hilbert-curve @ phpclasses.org。它也使用墨卡託投影。

+0

你的意思是告訴我,沒有辦法在谷歌地圖API中使用縮放功能設置中心氣球點的半徑?或者是這個效果?我不相信答案是否定的。對於開發人員可以使用Google地圖所做的一切,這似乎是不切實際的! – blackhawk 2012-07-27 17:56:42

+2

對於所有數字拼寫單詞。 – 2012-07-27 18:09:54

+0

中心我的意思是在瀏覽器窗口中看到所有地址的可視角度。我應該只說出來。 – blackhawk 2012-07-27 18:15:25

相關問題