-1
我有餐館的確切地址的數據庫,現在當用戶從他的移動設備搜索一家餐廳時,我想按照距他當前位置的距離順序向他展示餐廳,結果非常接近。做這個的最好方式是什麼?根據當前的地理位置搜索餐廳
我有餐館的確切地址的數據庫,現在當用戶從他的移動設備搜索一家餐廳時,我想按照距他當前位置的距離順序向他展示餐廳,結果非常接近。做這個的最好方式是什麼?根據當前的地理位置搜索餐廳
您可以使用所謂的Haversine formula。
下面的例子是針對PHP/MySQL的,但查詢仍然是你需要的。
$sql = "SELECT *, (3959 * acos(cos(radians(" . $lat . ")) * cos(radians(lat)) * cos(radians(lng) - radians(" . $lng . ")) + sin(radians(" . $lat . ")) * sin(radians(lat)))) AS distance FROM your_table HAVING distance < 5";
凡$lat
和$lng
是你點的座標和緯度/經度是你的表列。以上將列出5 nm範圍內的位置。將3959
替換爲6371
更改爲公里。
此鏈接可能是有用的:https://developers.google.com/maps/articles/phpsqlsearch_v3
您可以添加order by
條款通過distance
訂購的結果。
看看[Places Nearby search requests](https://developers.google.com/maps/documentation/javascript/places#place_search_requests)有一個'google.maps.places.RankBy.DISTANCE'選項會做你想做的。 – MrUpsidown
我想查找那些餐廳的地理位置(經度和緯度)值存儲在我自己的數據庫中最近的餐廳。從用戶我將得到他可以使用HTML5的地理位置。 – hitesh
好的。你使用什麼數據庫?所有這些都是你應該把問題擺在首位的信息。如果您的問題清晰完整,您將得到更快的答案。 – MrUpsidown