使用pgrouting2.0求最短路径
2013-11-01 17:48
141 查看
一安装PostgreSQL
二按照Postgis
1进入http://download.osgeo.org/postgis/windows/pg92/下载postgis,
如果下载的是第二个或者第四个安装文件,可以省略下面的第三步,但我用第四个文件没有安装成功,所以无奈选了最后一个,下载下来安装就可以了。
2 打开pgAdmin,执行sql语句:
三 安装pgrouting
1进入http://winnie.postgis.net/download/windows/pg92/buildbot/下载下图红框中的pgrouting。
2 解压,将解压文件的中的三个文件夹放到postgersql的安装目录下。
3打开pgAdmin,插件àPSQL Console,进入控制台:执行:
出现下图,表示安装成功:
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的值:
9 求最短路径:
表示求从节点16 ,到426 的最短路径,结果如下:
二按照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 的最短路径,结果如下:
相关文章推荐
- JAVA实践使用队列优化Bellman-Ford最短路径算法
- 使用佛洛伊德算法计算点对的最短路径
- Spark组件之GraphX学习9--使用pregel函数求单源最短路径
- 使用php完成最短路径查找
- Mininet实验 使用l2_multi模块寻找最短路径实验
- [HDU] 1242 Rescue -不使用优先队列来找寻最短路径
- hdu 2616 暴力使用 dfs求最短路径(剪枝有点依稀)
- 迷宫最短路径算法(使用队列)
- 使用Dijkstra迪杰斯特拉算法获得单源最短路径
- 九度 OJ 1447 题 最短路径问题 Dijkstra(迪杰斯特拉)算法实现,使用vector模板模拟邻接链表
- BGL使用dijkstra计算图的最短路径
- (阶段三 dijkstra算法温习 1.6)POJ 2387 Til the Cows Come Home(使用dijkstra算法求单源起点和单源终点的最短路径)
- ArcGIS 网络分析[2] 在ArcMap中使用网络数据集进行五大网络分析[最短路径/服务区/最近设施点/OD成本矩阵/车辆分配]
- Diskstra-最短路径-使用数组来实现邻接表
- 使用pgrouting求任意两点的最短路径
- 使用栈求解迷宫最短路径
- 最短路径(需要使用高精度整数)
- Codeforces Round #287 (Div. 2) E bfs+记录最短路径(邻接表的使用
- 我是怎么使用最短路径算法解决动态联动问题的
- Python使用Dijkstra算法实现求解图中最短路径距离问题详解