postgresql+postgis+pgrouting实现最短路径查询(1)---线数据的处理和建立拓扑
准备一个线shp数据,并将其导入postgres里面,postgres安装postgis和pgrouting两个插件(方法见http://www.cnblogs.com/nidaye/p/4553522.html)。线数据的字段如下:注意字段的名称,省的出现不必要的麻烦。
1、ALTER TABLE beijing_line ADD COLUMN source integer;
ALTER TABLE beijing_line ADD COLUMN target integer;
ALTER TABLE beijing_line ADD COLUMN length double precision;
UPDATE beijing_line SET length = ST_Length(the_geom);
ps:执行createTopology这个函数之前一定得对数据库执行以下三句sql查询:
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
CREATE EXTENSION fuzzystrmatch;
2、select pgr_createTopology('beijing_line',0.001,source:='source',id:='gid',target:='target',the_geom:='the_geom');
select pgr_createTopology('beijing_line',0.1,source:='source',id:='gid',target:='target',the_geom:='the_geom’);
把容差值设置的大一点,可能结果会好点
3、 SELECT * FROM pgr_dijkstra('
SELECT gid as id,
source::integer,
target::integer,
length::double precision as cost
FROM beijing_line',
30, 60, false, false);
无查询结果就执行下面这几个试一试,也可能是两点之间就没有路径
select source from beijing_line;
select target from beijing_line;
select length from beijing_line;
4、查询所经过的所有点:
SELECT st_astext(the_geom) FROM pgr_dijkstra('
SELECT gid AS id,
source::integer,
target::integer,
length::double precision AS cost
FROM beijing_line',
30, 60, false, false) as di
join beijing_line pt
on di.id2 = pt.gid;
5、将路径写入一个几何文件内:
SELECT seq, id1 AS node, id2 AS edge, cost,the_geom into dijkstra_res FROM pgr_dijkstra('
SELECT gid AS id,
source::integer,
target::integer,
length::double precision AS cost
FROM beijing_line',
30, 60, false, false) as di
join beijing_line pt
on di.id2 = pt.gid;
经历过以上的步骤,如果一切顺利,应该能看到结果,这里不再截图。这时初步的准备工作已经完成。
参考博文如下():
2、pgrouting进行路径规划之入门二(1和2是一个求最短路径博文系列,挺不错的可以看看,但可能是因为机器配置环境的不同,原封不动的可能无法运行别人的代码,一定搞懂原理,然后可对前人的代码改进)
postgresql+postgis+pgrouting实现最短路径查询(1)---线数据的处理和建立拓扑的更多相关文章
- postgresql+postgis+pgrouting实现最短路径查询(2)---openlayers+geoserver实现最短路径
自己的最短路径实现基本上是按照参考博文的1.2和3进行的,实现的时候也是问题不断,只能是一个一个解决. 问题1:自己发布的geoserver服务无法和OSM底图叠加到一起. 解决:参考博文2提到发布服 ...
- postgresql+postgis+pgrouting实现最短路径查询(3)--流程图
项目结束,做一个项目的总结汇报,就把最短路径查询的实现流程图画了一下,现在补出来:
- GeoServer+PostgreSQL+PostGIS+pgRouting实现最短路径查询
一.软件安装 GeoServer下载地址: http://geoserver.org/download/ PostgreSQL下载地址: https://www.postgresql.org/down ...
- WFS: postgresql(postgis)和shp文件查询效率对比
对GeoServer上的WFS的各种数据源查询效率感兴趣,做个测试.本次测试了Postgresql.geopackage.shp文件三种数据源的查询效率,无论是本机还是服务器环境,pg存储查询效率都比 ...
- 路径分析—QGIS+PostgreSQL+PostGIS+pgRouting(一)
前言 因业务需求,需要做最短路径分析.最近几天查询资料,并自己动手,实现了简单的路径分析. 下面就介绍具体的实现过程. 本篇文章最终结果是在 PostgreSQL 数据库中实现的,后续的可视化展示会继 ...
- postgresql+postgis+pgrouting安装步骤图解
1.在此(https://www.bigsql.org/postgresql/installers.jsp/)下载postgresql(开源数据库,gis行业推荐使用); 2.在此(http://wi ...
- 基于pgrouting的最短路径规划
最近项目上有一个计算两点最短路径的需求,即就是类似于百度地图的路径规划问题,小编研究了一段时间,并参考了相关资料,基于postgresql+postgis+pgrouting实现了简单的路径规划,计算 ...
- PostGIS pgrouting路径分析
--让数据库支持PostGIS和pgRouting的函数和基础表(安装后第一次使用时执行,以后都不再执行) CREATE EXTENSION postgis; CREATE EXTENSION pgr ...
- PostgreSql+PostGIS和uDig的安装
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 总体来说,这两款开源软件均是很好安装的,一般按照提示一步一步 ...
随机推荐
- IIS 是如何处理 ASP.NET 请求的
#main{ width:1250px; } #mainContent{ width:915px } img#imgTop{ max-width:850px; } Web 服务器 VS Web 应用程 ...
- 访问 .obj文件,由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射
一.错误描述 HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. 最可能的原因: 可 ...
- gulpjs
http://www.cnblogs.com/2050/p/4198792.html 这篇文章很全面的讲解了gulpjs的使用 https://www.jianshu.com/p/9723ca2a ...
- CAS实现的单点登录系统
单点登录(single sign on ),简称SSO. 纯属学习用,对来自网络的部分如果侵害了您的权力,请联系我.QQ:262800095 SSO的定义是在多个应用系统中,用户只需要登录一次就可以访 ...
- SQL Server优化查询
1. 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条 ...
- 悟空模式-java-建造者模式
[此是锻炼神冰铁,磨琢成工光皎洁.老君自己动钤锤,荧惑亲身添炭屑.五方五帝用心机,六丁六甲费周折.造成九齿玉垂牙,铸就双环金坠叶.身妆六曜排五星,体按四时依八节.短长上下定乾坤,左右阴阳分日月.六爻神 ...
- POJO、JAVABEAN、*O、EJB
POJO: 全称:Plain Old Java Object 解释:纯洁老式的java对象.从任何类继承.也没有实现任何接口,更没有被其它框架侵入的java对象 理解:通常我们常说的实体类 BEAN: ...
- Vue.js之生命周期
有时候,我们需要在实例创建过程中进行一些初始化的工作,以帮助我们完成项目中更复杂更丰富的需求开发,针对这样的需求,Vue提供给我们一系列的钩子函数. vue生命周期 beforeCreate 在实例初 ...
- 【代码笔记】iOS-JSONKit的使用
一,工程图. 二,代码. #import "RootViewController.h" //为JSONKit添加头文件 #import "JSONKit.h" ...
- 【读书笔记】iOS-网络-Web Service协议与风格
协议指的是在与其它系统交换结构化信息时所要遵循的一套格式,过程与规则.此外,协议定义了在传输过程中所要使用的数据格式.这样,接收系统就能正确地解释结构化信息并做出正应的回应. 1,简单对象访问协议. ...