使用pgrouting2.0求最短路径

一安装PostgreSQL

二按照Postgis

1进入http://download.osgeo.org/postgis/windows/pg92/下载postgis,


如果下载的是第二个或者第四个安装文件,可以省略下面的第三步,但我用第四个文件没有安装成功,所以无奈选了最后一个,下载下来安装就可以了。

 2 打开pgAdmin,执行sql语句:

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
CREATE EXTENSION fuzzystrmatch;


三 安装pgrouting

1进入http://winnie.postgis.net/download/windows/pg92/buildbot/下载下图红框中的pgrouting。


2 解压,将解压文件的中的三个文件夹放到postgersql的安装目录下。

3打开pgAdmin,插件àPSQL Console,进入控制台:执行:

CREATE EXTENSION pgrouting;
select pgr_version()
出现下图,表示安装成功:

 


 4 注册函数

   在控制台中执行pgrouting解压文件中\share\extension中的5个sql文件,可以用

   \i xxx.sql语句来执行。

 


5 将数据倒入到数据库中

  如果是shp数据可以用下面的工具导入,如果在导入过程中因为编码问题失败,可以Options,将编码改成GBK。



6 将空间字段的名称改成‘the_geom’:

 ALTER TABLE route RENAME COLUMN geo tothe_geom;


7 增加source ,target,length字段,并填充length的值:

ALTER TABLE route ADD COLUMN source integer;
ALTER TABLE route ADD COLUMN target integer;
ALTER TABLE route ADD COLUMN length double precision;
UPDATE routeSET length = ST_Length(the_geom);


8 使用pgr_createTopology()建立拓扑,以下两种都可以:
SELECT pgr_createTopology(‘route’,0.001);
SELECT  pgr_createTopology(’route’,0.001,’the_geom’,’id’,’source’,’target’);

9 求最短路径:

SELECT * FROMpgr_dijkstra('
                SELECT gid as id,
                         source::integer,
                         target::integer,
                         length::doubleprecision as cost
                         FROM route',
                16, 426, false, false);


表示求从节点16 ,到426 的最短路径,结果如下:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值