我期待在我的網站上爲我的serach引擎做一個選項,以便用戶可以搜索設定距離內的項目,例如,搜索10英里或20英里內的物品等。我想知道如何做到這一點?搜索引擎的距離
用戶必須輸入他們的郵編,而我也有郵編的位置,一旦他們擊中搜索需要一個工作的距離之間的兩個位置之間的距離,然後顯示結果按距離排序;因爲最近的項目是第一個結果。在使用地圖「獲取路線」選項來計算英里距離時,是否存在Google API?或者我可以添加到我的數據庫?
我期待在我的網站上爲我的serach引擎做一個選項,以便用戶可以搜索設定距離內的項目,例如,搜索10英里或20英里內的物品等。我想知道如何做到這一點?搜索引擎的距離
用戶必須輸入他們的郵編,而我也有郵編的位置,一旦他們擊中搜索需要一個工作的距離之間的兩個位置之間的距離,然後顯示結果按距離排序;因爲最近的項目是第一個結果。在使用地圖「獲取路線」選項來計算英里距離時,是否存在Google API?或者我可以添加到我的數據庫?
Google地理編碼API提供郵政編碼查詢功能,可以提供即使只有一個郵政編碼作爲地址的國家,城市,緯度/經度。一旦你有了經度/緯度,那麼你可以輕鬆計算距離並對結果進行排序。
http://code.google.com/apis/maps/documentation/geocoding/#GeocodingRequests
注意:您只能使用地理編碼API與谷歌地圖相結合;禁止在地圖上顯示地理編碼結果。有關允許使用的完整詳細信息,請參閱鏈接。
所以,如果,例如,如果您請求的郵政編碼94043查找調用以下網址:
http://maps.googleapis.com/maps/api/geocode/json?address=94043&sensor=false
這將與JSON結果如下列:
{
"results" : [
{
"address_components" : [
{
"long_name" : "94043",
"short_name" : "94043",
"types" : [ "postal_code" ]
},
...
"location" : {
"lat" : 37.4284340,
"lng" : -122.07238160
},
"location_type" : "APPROXIMATE",
...
"status" : "OK"
}
如果您無法使用谷歌API由於某些原因,這裏是非Google Geocoder API和服務列表:
的可能重複的[PHP/MySQL的郵政編碼鄰近搜索](http://stackoverflow.com/questions/2410529/php-mysql-zip-code-proximity-search) –
事情你正在尋找的是一個地理空間搜索。如果您可以告訴我們您選擇的語言和數據庫引擎,我們可能會提出有價值的建議。 – Charles
謝謝,即時通訊使用PHP和MySQL –