2013-02-18 69 views
0

我有一個商店列表,我已經把一個javascript數組。我也有他們的地址。jquery自動完成店鋪附近的店鋪

我需要創建一個自動完成,它允許我輸入一個城市名稱,並顯示最接近該位置的3個。我想,它將需要與谷歌的API接口一些如何但不知道從哪裏開始。

我已經得到了實際的自動完成jQuery的東西在ajax腳本上工作,但我不知道如何獲得位置最近的東西。

回答

0

你需要存儲的緯度/經度位置,https://developers.google.com/maps/documentation/geocoding/然後,你需要的用戶的緯度/經度位置,用一些相對簡單的數學,你可以再計算這兩個點之間的距離:

$distance = round((6371*3.1415926*sqrt(($lat2-$lat1)*($lat2-$lat1) + 
cos($lat2/57.29578)*cos($lat1/57.29578)*($lon2-$lon1)*($lon2-$lon1))/180), 1); 

如果您有大量的商店和大量的用戶,我建議您在mysql表中緩存這些距離,您必須爲數據庫中的每個商店執行此操作。所以你爲每個例子創建一個表格請求這個郵政編碼,並建立一個cron刪除這些表每小時左右。

所以這個過程:

  1. 用戶詢問最近的商店
  2. 您可以通過谷歌的API(或您自己的存儲)
  3. 檢查得到他的位置,如果有他的位置的表
  4. 如果是,直接給他結果,如果沒有生成表格並給他結果

注意google只有全部發出數量有限的數據請求。儘管這個數字很大(我相信每天有25000個請求),但建議您存儲商店和用戶的緯度位置。也會提高速度。

我做了類似的事情,我提取了位置插入到數據庫中的經緯度位置,並將其插入到單獨的每個郵編經緯度表中。