整理一下postgresql的扩展功能postgis和pgrouting的使用
postgis windows的下的安装使用postgresql的bin目录下的stackbuiler
Ubuntu14.04下的安装:
apt-get install postgresql-9.3-postgis-2.1(也可以用apt-cache search postgresql postgis查找最新的版本)
postgis:
1.建表语句:
create table NODES (ID SERIAL not null,geometry geography(POINTZ, 4326) null); 字段geometry表示的是三维空间的点,二维的点将POINTZ改为POINT即可
create table EDGES (ID SERIAL not null,geometry geography(LINESTRINGZ, 4326) null); 字段geometry表示的是三维空间的线,同理,二维的将LINESTRINGZ改为LINESTRING即可
2.插入语句:
insert into nodes(geometry) values(ST_GeographyFromText('SRID=4326; POINT(-110 30 40)'));
insert into edges(geometry) values(ST_GeographyFromText('SRID=4326; LINESTRING(-110 30 40,11 22 33)'));
3.修改字段类型:
alter table public.nodes alter column geometry set data type geography(PointZ,4326);
4.查询语句:
select ST_AsText(geometry) from nodes;
select ST_AsText(geometry) from edges;
有关pgrouting:
1.Windows下的安装:
在官网下载和本机PostgreSQL对应版本的PGRouting,我这里的版本的PostgreSQL 9.2,这个版本可以使用的PGRouting对应版本是2.0。
下载PGRouing之后,可以看到里面有3个文件夹(bin、lib、share)和5个文件,以后可能会有变动,将这三个文件夹拷贝到PostgreSQL的安装目录下,和同名文件夹合并。
2.Ubuntu14.04下的安装:
sudo apt-get install postgresql-9.3-pgrouting(如果出现package not found的情况,则需要添加pgrouting的repository)
add pgrouting repository: sudo apt-add-repository -y ppa:ubuntugis/ppa
sudo apt-add-repository -y ppa:georepublic/pgrouting
sudo apt-get update
sudo apt-get install postgresql-9.3-pgrouting
3.让数据库支持pgrouting:
CREATE EXTENSION pgrouting;
4.pgrouting需要在edges中加入一些基本的字段
columns 'source', 'target' must be of type int4, 'cost' must be of type float8(也可以使用其他的字段名,使用内置函数查询的时候注意点就好了)
5.查询两个node之间的最短路径:
select * from pgr_dijkstra('select id as id,source::integer,target::integer,length::double precision as cost from edges',30,60,false,false);
该查询语句表示的是得到ID为30和60的node之间的最短路径,第四个参数指的是是否限制方向
注意!!!注意!!!
非常抱歉关于上面的字段geometry的数据类型的错误,需要将 geography 改为 geometry,同时需要将插入语句的 ST_GeographyFromText 改为 ST_GeomFromEWKT 或 GeomFromEWKT (geography 主要表示经纬度,x的范围是(-180,180),y的范围是(-90,90)),其他的不变
整理一下postgresql的扩展功能postgis和pgrouting的使用的更多相关文章
- 基于Arcgis Engine 10.2(C#)+PostgreSQL 11(Postgis 3)+pgRouting 3.0实现使用数据库进行路径规划
前言:最近在(被迫)使用ArcGIS Engine10.2(.NET平台)进行二次开发(桌面应用),因为想做一个最短路径查询的功能,而arcgis的网络分析又比较麻烦,于是想到了使用Postgis.但 ...
- mac环境下安装posgreSQL,postGIS,pgrouting方法
费了九牛二虎之力,终于安装成功...都是mac的坑,好好的window环境多好,非要换mac环境,导致软件配置极其的麻烦,window的环境下配置会少很多事,自己惹的祸自己担着吧还是.换mac要慎重, ...
- 学习笔记之PostgreSQL / pgAdmin / Psycopg / PostGIS
PostgreSQL: The world's most advanced open source database https://www.postgresql.org/ POSTGRESQL: T ...
- Windows应用程序未响应
昨天在安装postgresql的扩展功能postgis的时候,stackbuilder刚打开就死掉,一直未响应,刚开始以为是内存的原因,后来发现并没有占用太多内存,最后打开vpn发现就可以了,原来是网 ...
- postgresql+postgis+pgrouting安装步骤图解
1.在此(https://www.bigsql.org/postgresql/installers.jsp/)下载postgresql(开源数据库,gis行业推荐使用); 2.在此(http://wi ...
- postgresql+postgis+pgrouting实现最短路径查询(1)---线数据的处理和建立拓扑
准备一个线shp数据,并将其导入postgres里面,postgres安装postgis和pgrouting两个插件(方法见http://www.cnblogs.com/nidaye/p/455352 ...
- PostgreSQL与PostGIS的关系
PostgreSQL相当于PostGIS的祖先,PostGIS是在PostgreSQL的基础上发展起来的,从它们的名字上也能看出些许端倪.PostgreSQL是一个开源数据库,而PostGIS在此基础 ...
- PostgreSQL数据库的安装与PostGIS的安装(转)
原文:http://lovewinner.iteye.com/blog/1490915 安装postgresql sudo apt-get install postgresql-9.1 postgre ...
- PostGIS pgrouting路径分析
--让数据库支持PostGIS和pgRouting的函数和基础表(安装后第一次使用时执行,以后都不再执行) CREATE EXTENSION postgis; CREATE EXTENSION pgr ...
随机推荐
- android开发 解析服务器端xml文件数据存储到android客户端SQLite数据库
以下面xml文件为例对其解析(假设此xml就在服务器端Server项目下的servlet包下的MenuServlet文件的输出流中): <?xml version="1.0" ...
- 时空上下文视觉跟踪(STC)算法
论文原文以及Matlab代码下载 算法概述 而STC跟踪算法基于贝叶斯框架,根据跟踪目标与周围区域形成的的时空关系,在图像低阶特征上(如图像灰度和位置)对目标与附近区域进行了统计关系建模.通过计算置信 ...
- wpf dataGrid 选中行 失去焦点时 的背景颜色的更改
关于 wpf dataGrid 选中行 失去焦点时 的背景颜色的更改.很简单的方式,在datagrid的resource中更改InactiveSelectionHighlightBrushKey属性的 ...
- ComboBox设置Text属性
WPF ComboBox 控件设置 Text属性时 必须将 IsEditable="true" 才能显示
- SVN客户端下载和Svn visual studio插件
1.Visual SVN Visual SVN visual studio插件 https://www.visualsvn.com/vis... 2.TortoiseSVN SVN客户端下载 http ...
- <正则吃饺子> :关于mybatis中使用的问题(一)
在公司项目开始之前,根据springboot .mybatis.Swagger2 整合了一个demo,在测试时候,遇到的问题,简单记录.之前在使用mybatis时候,没有注意到这一点. 1.错误:Th ...
- 使用jpa报No query defined for that name错误
今天使用jpa创建本地查询时出现Java.lang.IllegalArgumentException: No query defined for that name..... 一个很sb的问题,调用e ...
- mysql设置远程登录
服务器上,我们刚安装好MySQL后,是没有办法直接远程的,它只支持本地登录.所以我们必须要对刚安装好的MySQL进行设置,允许远程登录. 1. 使用“mysql -uroot -p”命令可以连接到本地 ...
- NIO 之阻塞IO和非阻塞IO(转载)
阻塞模式 IO 我们已经介绍过使用 Java NIO 包组成一个简单的客户端-服务端网络通讯所需要的 ServerSocketChannel.SocketChannel 和 Buffer,我们这里整合 ...
- PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
1. 首先要得到该数据库中有哪些表,所用函数 mysql_list_tables(),然后可以将获取的所有表名存到一个数组.----------------该函数由于被弃用 用show table ...