使用pgrouting2.0求最短路径
来源:互联网 发布:对对子软件在线 编辑:程序博客网 时间:2024/05/01 23:35
一安装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求最短路径
- 在ubuntu12.04上安装PostgreSQL9.2 PostGIS2.0 pgrouting2.0
- 使用路径
- 使用GraphFrame 的shortestPaths API 求最短路径
- Swift3.0语言教程使用路径字符串
- SiteMapPath使用QueryString路径
- C# 路径的使用
- access使用相对路径
- 使用CCCardinalSplineBy自定义路径
- java类路径使用
- jsp路径使用
- 使用CCCardinalSplineBy自定义路径
- ps的路径使用
- JSDoc3使用路径名
- jsp中路径使用
- spring 配置文件路径使用
- 相对路径的使用
- 获取路径getResourceAsStream使用
- 网狐6602 正在连接服务器 界面修改
- myeclipse学习笔记
- Java设计模式Proxy之动态代理
- 天冷了多加衣服哈!
- Android软件去广告教程
- 使用pgrouting2.0求最短路径
- 导出表钩子------EAT HOOK(转)
- JAVA的Split小技巧
- win7中右击“计算机”点“管理” 则出现“该文件没有与之关联的程序来执行操作。请安装一个程序,或者,如果已安装程序,请在‘默认程序’控制面板中创建关联。”
- Linux c字符串拷贝函数
- 关于java中bufferedreader的一些注意事项
- 互联网思维到底是什么?
- tcmalloc for arm
- UIScrollView代理方法的实现