PostGIS——路径规划的起始点的问题

当数据库中的路径规划数据gid被误删,导致算法失效。通过重新生成拓扑并修改顶点id来恢复。步骤包括:利用line创建新拓扑,添加old_id字段,增大现有id避免冲突,更新id为old_id,以及重新计算start_no和end_no。需注意在更新start_no和end_no时需先删除原有字段。
摘要由CSDN通过智能技术生成

问题描述:
数据库里用于路径规划的数据的gid被组内小伙伴误删掉导致所有算法失效。
重做拓扑后的source,target(start_no,end_no)怎么都不能是以前的了!!!

问题本质:source,target是根据 pgr_createTopology 函数生成的顶点的id来的。

 思路:生成拓扑后重新修改顶点的id和原来一致再更新拓扑就行(只更新且不能重建否者顶点的id又是全新的即pgr_createTopology的clean:=false)。

第一步:利用line重新创建拓扑得到顶点line_vertices_pgr图层。接下来所有操作都是为了修改id和以前一致。

第二步:line_vertices_pgr新增old_id,old_id=之前line_vertices_pgr的id。这里要不数据导出去用空间连接的方式把old_id追加上去。

 第三步:给line_vertices_pgr的id加上足够大的值确保与old_id不重复。(因为id是主键所以如果直接update让id=old_id会报错,因此要绕一下)

 第四步:更新line_vertices_pgr的id=old_id。

第五步:最后重新计算start_no和end_no。这里定要删除line的start_no和end_no后再重新创建start_no和end_no字段再用pgr_createTopology计算否者还是得不到想要的结果!!!

 

 完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值