0

我正在尝试为客户做一些网络分析。提供的路网GIS图层质量较差;因此,我不得不求助于谷歌地图来为我提供 200 个点之间的最短路径,以生成每个点之间的时间和距离矩阵。

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

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

编辑 理想的最终结果将是以下形式的 CSV 文件:

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

1 回答 1

2

我不会为您编写整个脚本,但这可以通过 maps API 完成。打开地图沙箱并添加到 onGDirectionsLoad 函数:

alert(gdir.getDistance().meters);

您可以在此处找到文档- 也可以使用 getDuration()。然后,您需要做的就是在完成后发出一个新请求,获取每对起点和终点的方向。

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

另请注意,谷歌的内置 KML 支持似乎不支持为您提供点列表 - 这是有道理的,因为客户端可能只有当前在屏幕上的那些。如果您想使用 KML 作为输入格式,您可能需要编写自己的 KML 加载器。或者使用更简单的格式,如本例所示

于 2009-08-02T03:58:59.503 回答