Introduction to PostGIS 之最优路径

   

      这几天研究了下postgis的拓展插件pgrouting(http://www.pgrouting.org/)。

      首先到官网下载pgrouting(注意版本对应,当前支持最高版本的postgis为8.4):

     然后把下载的pgrouting下doc lib share三个文件夹里的文件拷到postgresql安装文件夹的相应目录里面。然后打开postgresql  执行pgRouting-1.03_pg-8.4.2\Share\Contrib下的3个sql文件

     安装完算法之后我们就可以开始做最优路径分析了:

    首先对已有的道路表添加source target length  分别代表 道路的起点id 终点id 和权重值。

ALTERTABLE ch10.load_merge ADDCOLUMN source integer;
ALTERTABLE ch10.load_merge ADDCOLUMN target integer;
ALTERTABLE ch10.load_merge ADDCOLUMN length doubleprecision;

 

   然后就可以执行assign_vertex_id()为表建立拓扑关系:

SELECT assign_vertex_id('load_merge',.001,'the_geom','gid');

在进行分析之前还要设置下权重值,一下sql语句是以道路长度为权重值:

UPDATE twin_cities SET length = ST_Length(the_geom);

最后就可以执行查询(需要注意的是:道路表的the_geom类型应为muitilinestring):

SELECT st_astext(the_geom)  FROM dijkstra_sp('load_merge',752,82);

也可以插入一个表中 可以通过QGIS查看结果:

SELECT the_geom INTO dijkstra_result FROM dijkstra_sp('load_merge',4752,82);

 

   在实际项目开发中使用pgrouting是相当方便的:

  地图服务:geoserver

  数据库:postgresql+postgis+pgrouting

 程序下载地址:https://github.com/shitao1988/AGS-PgRouting

转载于:https://www.cnblogs.com/shitao/archive/2011/09/15/2177295.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值