2016-05-16 68 views
-1

我一直在尋找一些我想達到的信息,但沒有得到任何明確的答案。Google地圖API for addesses搜索

我有一個數以千計的地址的數據庫。我希望當用戶通過輸入郵編進行搜索時,搜索應該在地圖中顯示靠近郵編的所有可用地址。放大顯然會顯示更接近搜索郵政編碼的地址(因此搜索結果更少),縮小也會包含更遠的地址(因此更多的搜索結果)。然後點擊位置圖標將顯示完整的地址。

我需要將地址存儲爲經度和緯度還是谷歌地圖可以使用郵政編碼搜索位置?如果我需要存儲經度和緯度,那麼將地址轉換爲long和lat的最佳方式是什麼?

我真的很感激,如果你能指點我任何有用的鏈接或可重用的代碼。

感謝

回答

0

據我瞭解,你要找到你的數據在一定的位置,這是通過郵政編碼確定的所有最接近的位置。

首先,您必須將所有地址轉換爲座標(經度和緯度)。你可以做到這一點使用谷歌的地理編碼API,你必須創建爲腳本,它調用谷歌的地理編碼API在你的數據庫的每一個地址:

https://maps.googleapis.com/maps/api/geocode/json?address=EXAMPLE_ADDRES&key=YOUR_API_KEY 

這個劇本帶給你的是記錄here的響應。您可以解析它以獲取每個位置的經度和緯度,並將它們存儲在數據庫中。注意Google Geocode API的侷限性。他們列出了here。您必須以不超過這些限制的方式創建腳本。還請閱讀this article緩存地理編碼結果,以確保您不違反服務條款。本文還包含一些最佳實踐和服務器端地理編碼的示例。

現在,當有人向您的應用程序輸入郵編時,您可以使用地理編碼API或Google maps Geocoding service來轉換郵政編碼以協調和使用海峽社區公式,您可以計算離您的數據庫最近的位置到郵政編碼位置的座標。您可以在前端執行此操作,例如在此SO answer(而不是地址,您將在地址欄中輸入郵編+州/國家)或在後端,如果您使用MySQL,請檢查此SO question