2015-04-26 41 views
-1

我有餐館的確切地址的數據庫,現在當用戶從他的移動設備搜索一家餐廳時,我想按照距他當前位置的距離順序向他展示餐廳,結果非常接近。做這個的最好方式是什麼?根據當前的地理位置搜索餐廳

+0

看看[Places Nearby search requests](https://developers.google.com/maps/documentation/javascript/places#place_search_requests)有一個'google.maps.places.RankBy.DISTANCE'選項會做你想做的。 – MrUpsidown

+0

我想查找那些餐廳的地理位置(經度和緯度)值存儲在我自己的數據庫中最近的餐廳。從用戶我將得到他可以使用HTML5的地理位置。 – hitesh

+1

好的。你使用什麼數據庫?所有這些都是你應該把問題擺在首位的信息。如果您的問題清晰完整,您將得到更快的答案。 – MrUpsidown

回答

0

您可以使用所謂的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訂購的結果。

相關問題