前提:在PostgreSQL中建立PostGIS数据库,安装pgRouting插件,导入现有的线表shp数据(示例使用的是管线pipesectionmain,其他的线表数据均可)。
1、pgRouting在edge表中添加字段
线表中必须有id,source,target,cost,the_geom 5个字段,其中现有空间数据表中的gid可作为id,shape_leng可作为cost,geom可作为the_geom。还需要额外增加source和target字段
新增souce和target字段并加上索引
alter table waterdataset.pipesectionmain add column source int;alter table waterdataset.pipesectionmain add column target int;create index road_source_idx onwaterdataset.pipesectionmain("source");create index road_target_idx on waterdataset.pipesectionmain("target");
如现有空间表中没有长度字段,可通过以下语句初始化
ALTER TABLE waterdataset.pipesectionmain ADD COLUMN length double precision;update waterdataset.pipesectionmain set length =st_length(geom);
2、建立拓扑
SELECT pgr_createTopology('waterdataset.pipesectionmain',0.001, 'geom', 'gid');
执行后会在相应的架构下创建pipesectionmain_