使用谷歌地图为大量节点找到最短路径

时间:2009-08-02 02:53:52

标签: javascript google-maps gis kml

我正在尝试为客户端进行一些网络分析。提供的道路网络GIS层质量差;因此,我必须使用谷歌地图为我提供200点之间的最短路径,以产生每个点之间的时间和距离矩阵。

有没有办法可以将图层作为一组KML点输入,以获得这些点之间的距离和时间的输出?

如果可以通过api这样做,你对如何编写这样的脚本有任何提示或建议吗?

修改 理想的最终结果将是以下格式的CSV文件:

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

1 个答案:

答案 0 :(得分:2)

我不会为您编写整个脚本,但这可以使用maps API完成。打开the maps sandbox并添加到onGDirectionsLoad函数:

alert(gdir.getDistance().meters);

您可以找到文档here - 也可以使用getDuration()。然后,您需要做的就是在完成一个新请求后,为每对开始和结束点获取路线。

但请注意,如果您计划获得200 * 200路径,Google可能会决定在某些时候对您进行速率限制。使用此方法需要您自担风险,并且请求之间会有延迟。

另请注意,Google builtin KML support似乎不支持为您提供积分列表 - 这是有道理的,因为客户端可能只有当前在屏幕上的那些。如果要使用KML作为输入格式,则可能需要编写自己的KML加载程序。或者使用更简单的格式,如this example