




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、lPostGIS简介lPostGIS特性lPostGIS读写数据lPostGIS查询语言lPostGIS函数lPostGIS扩展函数 1986年,加州大学伯克利分校的Michael Stonebraker教授领导了Postgres的项目,它是PostgreSQL的前身。随后出现了PostGIS,PostGIS是对象关系型数据库系统PostgreSQL的一个扩展,它的出现让人们开始重视基于数据库管理系统的空间扩展方式,而且使PostGIS有望成为今后管理空间数据的主流技术。 在两大开源数据库产品的对比中,一般认为MySQL速度更快,所以得到更为广泛的使用;而PostgreSQL性能更为先进,Po
2、stgreSQL 提供很多 MySQL 目前所不支持的特性,比如触发器、视图、存储过程等等,在记录数超千万之后性能表现尤其出色。lPostGIS是对象关系型数据库系统PostgreSQL的一个扩展。lPostGIS提供如下空间信息服务功能:空间对象、空间索引、空间操作函数和空间操作符。lPostGIS遵循OpenGIS的规范。lPostGIS的版权被纳入到GNU的GPL中,任何人可以自由得到PostGIS的源码并对其做研究和改进。支持OpenGIS中所有空间数据类型: 点(POINT)、线(LINESTRING)、多边形(POLYGON)、多点(MULTIPOINT)、多线(MULTILINE
3、STRING)、多多边形(MULTIPOLYGON)和集合对象集(GEOMETRYCOLLECTION)等。PostGIS支持所有的对象表达方法,比如WKT和WKB。lExamples of WKT:lPOINT(0 0) 点lLINESTRING(0 0,1 1,1 2) 线lPOLYGON(0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1) 面lMULTIPOINT(0 0,1 2) 多点lMULTILINESTRING(0 0,1 1,1 2),(2 3,3 2,5 4) 多线lMULTIPOLYGON(0 0,4 0,4 4,0 4,0 0),(
4、1 1,2 1,2 2,1 2,1 1), (-1 -1,-1 -2,-2 -2,-2 -1,-1 -1) 多面lGEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4) 几何集合lEWKT和EWKB相比OGC WKT和WKB格式主要的扩展有3DZ、3DM、4D坐标和内嵌空间参考支持。l以下以EWKT语句定义了一些几何对象:lPOINT(0 0 0) 3D点lSRID=32632;POINT(0 0) 内嵌空间参考的点lPOINTM(0 0 0) 带M值的点lPOINT(0 0 0 0) 带M值的3D点lSRID=4326;MULTIPOINTM(0
5、0 0,1 2 1) 内嵌空间参考的带M值的多点l以下语句可以使用EWKT格式插入一个点要素到一个表中:lINSERT INTO table ( SHAPE, NAME )lVALUES ( GeomFromEWKT(SRID=4326;POINTM(116.39 39.9 10), 北京 )lCanonical格式是16进制编码的几何对象,直接用SQL语句查询出来的就是这种格式。SQL-MM格式:SQL-MM格式定义了一些插值曲线,这些插值曲线和EWKT有点类似,也支持3DZ、3DM、4D坐标,但是不支持嵌入空间参考。以下以SQL-MM语句定义了一些插值几何对象:CIRCULARSTRING
6、(0 0, 1 1, 1 0) 插值圆弧COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 1, 1 0),(1 0, 0 1) 插值复合曲线CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, 3 1, 1 1) 曲线多边形MULTICURVE(0 0, 5 5),CIRCULARSTRING(4 0, 4 4, 8 4) 多曲线MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, 3 1, 1 1)
7、,(10 10, 14 12, 11 10, 10 10),(11 11, 11.5 11, 11 11.5, 11 11) 多曲面 读写PostGIS目前主要有以下四种方式: 1. 使用psql语言 select * from test1; select myID,AsText(pt) from test1; select Distance(pt, POINT(0 0) from test1; 2.使用一些小工具 有两个小的转换工具,一是shp2pg;一是ogr2ogr。3.在其他GIS软件中读写PostGIS数据 比如在QGIS中,能够打开PostGIS图层,还有SPIT插件可以把 Sha
8、pe文件输入到PostGIS数据库中。4.利用接口在应用程序中读写PostGIS数据表的建立Creating a Spatial TableCreating a Spatial Table 在PostGIS中创建一个包含几何字段的空间表分为2步:第一步创建一个一般表,第二步给这个表添加几何字段。 在test模式下创建一个名为cities的一般表:create table test .cities (id int4, name varchar(20) 再给cities添加一个名为shape的几何字段(二维点):select Add Geometry Column(test, cities, sh
9、ape, 4326, POINT, 2)Loading GIS DataLoading GIS DataRetrieving GIS DataRetrieving GIS DataPostGISPostGIS中的空间索引中的空间索引 数据库数据库对多维数据的存取有两种索引方案,对多维数据的存取有两种索引方案,R-TreeR-Tree和和GiSTGiST(Generalized Search TreeGeneralized Search Tree),在),在PostgreSQLPostgreSQL中的中的GiSTGiST比比R-TreeR-Tree的健的健壮性更好,因此壮性更好,因此PostGI
10、SPostGIS对空间数据的索引一般采用对空间数据的索引一般采用GiSTGiST实现实现。 以下以下的语句给的语句给sdesde模式中的模式中的citiescities表添加了一个空间表添加了一个空间索引索引shape_index_citiesshape_index_cities,在,在pgAdminpgAdmin中也可以通过图形界面完成相同的功能。中也可以通过图形界面完成相同的功能。CREATE INDEX CREATE INDEX shape_index_citiesshape_index_citiesON ON sde.citiessde.citiesUSING gistUSING gi
11、st(shape(shape); ); 另外另外要注意的是,空间索引只有在进行基于边界范围的查询时才起作用要注意的是,空间索引只有在进行基于边界范围的查询时才起作用,比如比如“&”操作。操作。 Examples of Spatial SQLExamples of Spatial SQL: 1. What is the total length of all roads, expressed in kilometers?SELECT sum(ST_Length(the_geom)/1000 AS km_roads FROM bc_roads;km_roads-70842.12430396
12、43(1 row)Examples of Spatial SQLExamples of Spatial SQL: 2. How large is the city of xxx, in hectares?SELECTST_Area(the_geom)/10000 AS hectaresFROM bc_municipalityWHERE name = xxx;hectares-32657.9103824927(1 row)PostGIS函数大致可以分为以下四类:l字段处理函数 AddGeometryColumn为已有的数据表增加一个地理几何数据字段; DropGeometryColumn删除一个
13、地理数据字段的; SetSRID设置SRID值 Probe_Geometry_Columns()检查数据库几何字段并在geometry_columns中归档 PostGIS函数大致可以分为以下四类:l几何关系函数 目前共有13个,分别是:获取两个几何对象间的距离ST_Distance( )判断两个几何对象是否相等ST_Equals( )判断两个几何对象是否分离ST_Disjoint( )判断两个几何对象是否相交ST_Intersects ()判断两个几何对象的边缘是否接触ST_Touches( )判断两个几何对象是否互相穿过ST_Crosses( )判断A是否被B包含ST_Within( )判
14、断两个几何对象是否是重叠ST_Overlaps( )判断A是否包含BST_Contains( )判断A是否覆盖BST_Covers( )判断A是否被B所覆盖ST_CoveredBy( )通过DE-9IM 矩阵判断两个几何对象的关系是否成立ST_Relate( )获得两个几何对象的关系(DE-9IM矩阵)ST_Relate( )PostGIS函数大致可以分为以下四类: 几何分析函数 这类函数目前共有12个,分别是: Centroid, Area, Lenth, PointOnSurface, Boundary, Buffer, ConvexHull, Intersection, SymDiffe
15、rence, Difference, GeomUnion, MemGeomUnion 读写函数 这类函数很多,主要是用于在各种数据类型之间的转换,尤其是在于Geometry数据类型与其他如字符型等数据类型之间的转换,函数名如AsText、GeomFromText等。l管理函数:删除一个空间表(包括geometry_columns中的记录) DropGeometryTable(, )更新空间表的空间参考 UpdateGeometrySRID(, , , )更新空间表的统计信息 update_geometry_stats(, )l几何对象创建:Dump:转储 ST_GeomFromEWKT(tex
16、t)ST_GeomFromEWKB(bytea)ST_MakePoint(, , , )ST_MakePointM(, , )ST_MakeBox2D(, )l几何对象编辑:给几何对象添加一个边界,会使查询速度加快 ST_AddBBOX(geometry)删除几何对象的边界 ST_DropBBOX(geometry)添加、删除、设置点 ST_AddPoint(linestring, point, )l线性参考:根据location(0-1)获得该位置的点 ST_line_interpolate_point(linestring, location)获取一段线 ST_line_substring(linestring, start, end)根据点获取location(0-1) ST_line_locate_point(LineString, Point)根据量测值获得几何对象 ST_locate_along_measure(geometry, float8)根据量测值区间获得几何对象集合 ST_locate_between_measures(geometry, float8, float8)l杂项功能函数:几何对象的摘要 ST_Summary(geometry)几何对象的边界 ST_box2d(geometry)ST_box3d(g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 灯具环境友好型设计与绿色制造考核试卷
- 生物质能发电项目的社会影响评估考核试卷
- 生态产品价值实现机制考核试卷
- 石墨矿石的浮选与熔炼过程考核试卷
- 管道工程法律法规与政策考核试卷
- 糖果与巧克力品牌营销经验分享考核试卷
- 山东旅游职业学院《计算机数学》2023-2024学年第一学期期末试卷
- 喀什理工职业技术学院《安全监测技术及实验》2023-2024学年第二学期期末试卷
- 山东艺术设计职业学院《土建工程基础》2023-2024学年第二学期期末试卷
- 山东省聊城市华阳中学2024-2025学年高三保温练习(二)语文试题含解析
- DPtechIPS2000系列入侵防御系统培训胶片课件
- “四不伤害”安全生产专题培训课件
- 阿特拉斯空压机保养课件
- (房屋建筑部分)工程建设标准强制性条文2023年版
- 幼儿园中班语言《小兔子开铺子》课件
- 公司面谈表模板
- 苏教版科学一年级下册第10课形形色色的动物课件25张
- 超声诊断学:局灶性肝病(肝脏占位性病变)
- GB∕T 5019.8-2009 以云母为基的绝缘材料 第8部分:玻璃布补强B阶环氧树脂粘合云母带
- 延期还款申请表
- OSN9800光传输网络解决方案
评论
0/150
提交评论