2011-04-05 28 views
2

我想使用谷歌地圖API在我的客戶的辦公室和其客戶之間生成一條路線。距離線路/路徑n公里內的積分

然後我想找到位於例如內部的任何客戶(來自我的內部數據庫)。在該路線的任何一側10英里。

基本上我想複製這一功能: http://gis5.com/pois_along_route/gm_pois_along_route.php

我會很感激你可能對這個

+0

比較指定的鏈接 - 您的客戶將從鏈接的餐館? – GoG 2011-04-06 23:09:13

+0

這是絕對正確的GoG。因此,我目前的過程大致如下:從Google獲取路由點,然後使用Google的路由點/線作爲操作數,對SQL2008數據庫本地保存的數據執行搜索。 – RobD 2011-04-08 08:22:38

回答

6

一般而言,任何指針,你必須從給定的點(客戶)發現距離和一條折線(路線)。從谷歌方向響應的路線分爲雙腿,腿由多個步驟組成......在每一步中,您都有路徑[]陣列(緯度和經度對)。讓我們調用path []數組中的每個位置,一個「頂點」。 您必須遍歷路線中的所有頂點(獲取路線中所有步驟中的所有頂點),並計算從當前「觀察」頂點創建的多段線與您的POI(興趣點 - 客戶)之間的距離 最短距離可以通過將客戶位置的兩個頂點&呈現爲nVector來計算。在此之後,通過做矢量跨產品的矢量,你發現點和多段線之間的最短(正交)距離 我最近有類似的問題,我解決了這種方式。我從例子Here(看遠處點到折線或多邊形例如Source code)的想法

如果從所涉及的數學困惑,也許this鏈接可能被解釋向量跨產品的概念,幫助您。還要了解nVector概念的this could also help you

因爲這種計算距離非常耗時(如果您在數據庫中有很多客戶位置),您可能有興趣從數據庫中過濾一些位置並且不對其執行計算。看看我的回答this有關如何根據地圖上顯示的路線對地點進行過濾的問題。 希望這有助於您,並告訴您如何開始解決您的問題。我花了很多時間才弄清楚。乾杯。

+0

這是偉大的GOG!非常感謝,這已經讓我走上了正確的道路。 – RobD 2011-04-11 09:13:28