2009-08-02 67 views
0

我想爲客戶端做一些網絡分析。提供的路網GIS層質量差,因此,我不得不求助於Google地圖來提供200點之間的最短路徑,以在每個點之間生成時間和距離矩陣。找到使用谷歌地圖爲大量節點的最短路徑

有沒有一種方法可以輸入圖層作爲一組KML點來獲得這些點之間的距離和時間的輸出?

如果這可以通過api來實現,那麼您對如何編寫這樣的腳本有任何提示或建議嗎?

編輯 理想的最終結果將是以下形式的CSV文件:

node_1, node_2, distance, travel_time 
node_n, node_m, distance, travel_time 

回答

2

我不會寫整個劇本給你,但是這可以使用地圖API來完成。打開the maps sandbox並添加到onGDirectionsLoad功能:

alert(gdir.getDistance().meters); 

您可以找到的文檔here - 一個getDuration()也可用。然後,您需要做的就是一旦完成一個新的請求,爲每對開始和結束點獲取方向。

但是,請注意,如果您計劃獲得200 * 200的路徑,Google可能會決定在某個時間點限制您的速度。使用此方法需要您自擔風險,並在請求之間延遲。

請注意,谷歌的builtin KML support似乎不支持給你的點列表 - 這是有道理的,因爲客戶端可能只有那些目前在屏幕上。如果您想使用KML作爲輸入格式,您可能需要編寫自己的KML加載程序。或者使用更簡單的格式,如this example

+0

您是否知道我可以產生距離矩陣的其他方法? – dassouki 2009-08-04 11:47:44