0

我目前有一個基於郵編的服務區系統,客戶輸入一個地址(郵政編碼),它會返回服務區的可用服務時間(服務區可以有多個郵政編碼),什麼我現在需要做的不是使用郵編創建服務區域,而是需要使用邊界系統,我可以在地圖上繪製多邊形,當客戶輸入地址時,我們會對其進行地理編碼並與服務區域進行比較,並返回適當的服務時間,像這樣的系統會更準確,因爲我現在面臨的問題是郵政編碼邊界的形狀非常不同,並且不可能製作精確的服務時間圖。我有一個簡單的方法來解決這個問題。地圖邊界服務區系統

+0

[**見**](http://stackoverflow.com/questions/13318812/google-map-is-a-lat -lng-within-a-polygon/13325478#13325478)它使用php服務器端來定位多邊形中的點。它也可以在javascript中實現 –

回答

0

有關這個主題的研究更深入,我發現我一直在尋找的!我可以用光線投射算法來找出一個多邊形內部的一個點(座標)我可以很容易地從Google地圖獲取多邊形的座標,實質上我將要做的是:

  1. 製作Google地圖區域選擇器以構建多邊形。
  2. 將多邊形點座標數組保存到數據庫中(作爲服務區域/區域)
  3. 地理代碼客戶地址並保存到數據庫(第一次將從Google地圖中提取並保存在數據庫中以供將來使用)。 4.使用光線投射算法遍歷所有「多邊形」,直到它返回true,並且我們知道該地址屬於哪個多邊形,如果它返回false,則我們知道我們不處理該區域。

參考文獻:

Raycasting algorithm with GPS coordinates

http://rosettacode.org/wiki/Ray-casting_algorithm

0

讓你開始: Google Maps tutorial

+0

該技術不是問題,我需要的是這個概念......我可以使用谷歌地圖或mapquest或bing地圖,我需要知道是否需要將服務區等地理位置分組c ... – CodeArtist

+0

我確定你可以在Google或Bing地圖上繪製可點擊的多邊形。所有你需要知道的是創建多邊形的座標列表。我曾經創建過一個窗體應用程序,您可以在其中加載地圖並單擊不同點來創建多邊形,然後將點擊的座標保存到數據庫。 – user2930100

+0

對於Google地圖,您可以使用地圖「點擊」事件來捕獲地圖上的點擊地點。 Google爲此提供了一個教程(滾動到在UI Events中訪問參數):https://developers.google.com/maps/documentation/javascript/events –