由於項目需要根據目前使用者的地理位置計算附近的餐廳,並將餐廳根據距離遠近排序,並且只能在配送範圍內的餐廳下單。
我想知道有沒有什麼地圖API幫我實現這個功能。
我目前想到的是這樣的:
1:得到使用者當前所在準確經緯度,
2:我們每個餐廳表也有一個經緯度欄位資訊,並且有一個配送半徑多少公裡以內,
3:根據使用者的經緯度查詢出可以點餐的餐廳,並計算距離,
目前的問題就是步驟1,步驟3,怎麼實現?
再補充一個問題:
步驟2其實配送半徑是比較簡單的做法,最好是有個配送範圍,能在地圖上畫一個地區出來,但是這樣就更複雜了吧,我只是這個想法,還不知道能否通過怎樣的方式去實現。(上次問過和這個差不多的問題,有人說計算距離需要專門的地圖位置計算服務器來做,那這樣豈不是門檻太高了,我想有沒有什麼比較方便的地圖API可以實現一部分,然後通過程式PHP+MYSQL實現)
希望大神幫忙指點一下,謝謝了^_^
PS:如果可以能用的API實現也可以,想知道其中的原理
回複內容:
由於項目需要根據目前使用者的地理位置計算附近的餐廳,並將餐廳根據距離遠近排序,並且只能在配送範圍內的餐廳下單。
我想知道有沒有什麼地圖API幫我實現這個功能。
我目前想到的是這樣的:
1:得到使用者當前所在準確經緯度,
2:我們每個餐廳表也有一個經緯度欄位資訊,並且有一個配送半徑多少公裡以內,
3:根據使用者的經緯度查詢出可以點餐的餐廳,並計算距離,
目前的問題就是步驟1,步驟3,怎麼實現?
再補充一個問題:
步驟2其實配送半徑是比較簡單的做法,最好是有個配送範圍,能在地圖上畫一個地區出來,但是這樣就更複雜了吧,我只是這個想法,還不知道能否通過怎樣的方式去實現。(上次問過和這個差不多的問題,有人說計算距離需要專門的地圖位置計算服務器來做,那這樣豈不是門檻太高了,我想有沒有什麼比較方便的地圖API可以實現一部分,然後通過程式PHP+MYSQL實現)
希望大神幫忙指點一下,謝謝了^_^
PS:如果可以能用的API實現也可以,想知道其中的原理
可以調用高德地圖的api擷取餐廳的經緯度,然後用h5的navigator.geolocation來擷取目前使用者的經緯度,然後計算距離。
步驟1的話,可以像1樓那樣,利用HTML5的API去擷取經緯度
步驟3的話,可以找一個地圖,比如百度地圖、高德地圖的開發人員文檔,裡面就會有對應的方法,直接調用就可以了
給你幾個連結,你可以看看
HTML5地理位置
HTML5 Geolocation(地理定位)
百度地圖API
高德地圖API
如果在裡面直接擷取使用者的經緯度(介面有提供),然後基於你餐廳的經緯度去計算距離
目前 我們採用的方案是 使用者地理位置 通過的Api 來擷取
距離計算可以採用樓上說的通過mysql 地球半徑來計算, 但是這個查詢速度 比較慢..
目前項目使用但是 Geohash 的演算法來進行 距離的計算. 或者參考某團的這個方案來進行 某團文檔