使用pgrouting2.0求最短路径

使用pgrouting2.0求最短路径,第1张

概述一安装PostgreSQL 二按照Postgis 1进入http://download.osgeo.org/postgis/windows/pg92/下载postgis, 如果下载的是第二个或者第四个安装文件,可以省略下面的第三步,但我用第四个文件没有安装成功,所以无奈选了最后一个,下载下来安装就可以了。  2 打开pgAdmin,执行sql语句: CREATE EXTENSION postgis

一安装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 的最短路径,结果如下:

总结

以上是内存溢出为你收集整理的使用pgrouting2.0求最短路径全部内容,希望文章能够帮你解决使用pgrouting2.0求最短路径所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1177672.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存