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

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

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

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

node_1, node_2, distance, travel_time
node_n, node_m, distance, travel_time
有帮助吗?

解决方案

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

alert(gdir.getDistance().meters);

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

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

另请注意,Google的内置KML支持不会似乎支持给你点数列表 - 这是有道理的,因为客户端可能只有当前在屏幕上的那些。如果要使用KML作为输入格式,则可能需要编写自己的KML加载程序。或者使用更简单的格式,例如此示例

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top