天天看點

百度地圖——判斷使用者是否在配送範圍内解決方案

在pc端設定商家的配送範圍,使用者在下單時,根據使用者設定的配送地點判斷是否在可配送範圍内,并給使用者相應的提示。

1.用百度地圖在PC端設定配送範圍,可拖拽選擇2.根據使用者設定的配送位址判斷是否在配送範圍内

改動百度地圖官網的demo,設定配送範圍。

思路:擷取多邊形的頂點,以json的形式儲存到資料庫。

百度API關于多邊形覆寫物:

實作:

百度地圖——判斷使用者是否在配送範圍内解決方案

主要代碼:

以上代碼主要是監聽 <code>lineupdate</code> 事件,每一次拖拽百度地圖回調函數将傳回的多邊形的頂點,然後通過JSON.stringify方法轉為string類型存在一個标簽裡面,以待後續的表單送出操作。

去網上看了一下,判斷點是否在配送範圍内的方法很多,大概采用的是射線法。

但是有一些方法沒有考慮全面,導緻有的情況判斷不夠準确。

在百度地圖的GeoUtils裡面找到了“判斷點是否多邊形内”這個方法。

因為我是需要在後端做判斷,然後直接把js轉化成了java,測試百發百中,欣喜!(後面附上測試方法)

主要是判斷和這個方法的可行性。

為此寫了個測試方法。

思路:擷取一個多邊形的頂點,然後随機點一個點

1.調用百度地圖的方法,判斷該點是否在範圍内

2.根據百度地圖擷取的那個店的經緯度,自己程式判斷是否在範圍内

調用百度地圖的方法: