一、说明
具体实现步骤可参考其他博文,下面的这个博主写的很详细,步骤很清晰,注释也很全。geoserver+postgis 最短路径规划_geoserver 最短路径 存储过程-CSDN博客
本次文章,仅记录过程中需要注意的方面。
二、数据预处理
目标:在获取到路网数据的shapefile之后,利用ArcGIS高级编辑工具,对路网进行打断操作,否则程序无法判断路与路的连通性。
(shapefile格式的道路数据可以下载OSM的,Geofabrik Download Server)
如下图所示,选中的道路是未打断前选中的状态。
打断后,可单独选中路段:
操作:
1、ArcMap加载路网图层,图层开启编辑。
2、右键勾选高级编辑工具,显示高级编辑工具条。默认是不显示的。
3、选中图层中所有要素,选择工具条上的“打断相交线”。
三、数据导入
1、利用PostGIS导入工具操作时,SRID默认为0,修改成与导入的路网数据一致。
2、导入选项:
- 编码默认为UTF-8,需要修改为GBK,否则属性中的中文将会乱码。
- 勾选最后一个选项,生成简单的linestring,否则默认的muti_linestring。后面计算不出起始点坐标。
四、数据验证
SELECT * FROM pgr_dijkstra('SELECT gid as id, source, target, length as cost FROM cs_duan',16,56,false );
任意修改起点和终点的ID,均能计算出结果。如果没有,说明数据未作打断处理。
过程中其实遇到了各种各样的问题,基本在网上都可找到解决办法。如果还有其他问题,欢迎留言。