在pc端設定商家的配送範圍,使用者在下單時,根據使用者設定的配送地點判斷是否在可配送範圍内,并給使用者相應的提示。
1.用百度地圖在PC端設定配送範圍,可拖拽選擇2.根據使用者設定的配送位址判斷是否在配送範圍内
改動百度地圖官網的demo,設定配送範圍。
思路:擷取多邊形的頂點,以json的形式儲存到資料庫。
百度API關于多邊形覆寫物:
實作:

主要代碼:
以上代碼主要是監聽 <code>lineupdate</code> 事件,每一次拖拽百度地圖回調函數将傳回的多邊形的頂點,然後通過JSON.stringify方法轉為string類型存在一個标簽裡面,以待後續的表單送出操作。
去網上看了一下,判斷點是否在配送範圍内的方法很多,大概采用的是射線法。
但是有一些方法沒有考慮全面,導緻有的情況判斷不夠準确。
在百度地圖的GeoUtils裡面找到了“判斷點是否多邊形内”這個方法。
因為我是需要在後端做判斷,然後直接把js轉化成了java,測試百發百中,欣喜!(後面附上測試方法)
主要是判斷和這個方法的可行性。
為此寫了個測試方法。
思路:擷取一個多邊形的頂點,然後随機點一個點
1.調用百度地圖的方法,判斷該點是否在範圍内
2.根據百度地圖擷取的那個店的經緯度,自己程式判斷是否在範圍内
調用百度地圖的方法: