版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PostGIS简介及查询语言特性姓名:wujinbxxxPostGIS简介PostGIS特性PostGIS读写数据PostGIS查询语言PostGIS函数PostGIS扩展函数1986年,加州大学伯克利分校的MichaelStonebraker教授领导了Postgres的项目,它是PostgreSQL的前身。随后出现了PostGIS,PostGIS是对象-关系型数据库系统PostgreSQL的一个扩展,它的出现让人们开始重视基于数据库管理系统的空间扩展方式,而且使PostGIS有望成为今后管理空间数据的主流技术。在两大开源数据库产品的对比中,一般认为MySQL速度更快,所以得到更为广泛的使用;而PostgreSQL性能更为先进,PostgreSQL提供很多MySQL目前所不支持的特性,比如触发器、视图、存储过程等等,在记录数超千万之后性能表现尤其出色。1.PostGIS简介PostGIS是对象关系型数据库系统PostgreSQL的一个扩展。PostGIS提供如下空间信息服务功能:空间对象、空间索引、空间操作函数和空间操作符。PostGIS遵循OpenGIS的规范。PostGIS的版权被纳入到GNU的GPL中,任何人可以自由得到PostGIS的源码并对其做研究和改进。1.PostGIS简介支持OpenGIS中所有空间数据类型:
点(POINT)、线(LINESTRING)、多边形(POLYGON)、多点(MULTIPOINT)、多线(MULTILINESTRING)、多多边形(MULTIPOLYGON)和集合对象集(GEOMETRYCOLLECTION)等。PostGIS支持所有的对象表达方法,比如WKT和WKB。2.PostGIS特性OpenGIS简单要素规范的
SQL,Revision1.1ExamplesofWKT:POINT(00)——点LINESTRING(00,11,12)——线POLYGON((00,40,44,04,00),(11,21,22,12,11))——面MULTIPOINT(00,12)——多点MULTILINESTRING((00,11,12),(23,32,54))——多线MULTIPOLYGON(((00,40,44,04,00),(11,21,22,12,11)),((-1-1,-1-2,-2-2,-2-1,-1-1)))——多面GEOMETRYCOLLECTION(POINT(23),LINESTRING((23,34)))——几何集合OGC定义的空间数据类型WTKEWKT、EWKB和Canonical格式EWKT和EWKB相比OGCWKT和WKB格式主要的扩展有3DZ、3DM、4D坐标和内嵌空间参考支持。以下以EWKT语句定义了一些几何对象:POINT(000)——3D点SRID=32632;POINT(00)——内嵌空间参考的点POINTM(000)——带M值的点POINT(0000)——带M值的3D点SRID=4326;MULTIPOINTM(000,121)——内嵌空间参考的带M值的多点以下语句可以使用EWKT格式插入一个点要素到一个表中:INSERTINTOtable(SHAPE,NAME)VALUES(GeomFromEWKT('SRID=4326;POINTM(116.3939.910)'),'北京')Canonical格式是16进制编码的几何对象,直接用SQL语句查询出来的就是这种格式。2.PostGIS特性SQL-MM格式:SQL-MM格式定义了一些插值曲线,这些插值曲线和EWKT有点类似,也支持3DZ、3DM、4D坐标,但是不支持嵌入空间参考。以下以SQL-MM语句定义了一些插值几何对象:CIRCULARSTRING(00,11,10)——插值圆弧COMPOUNDCURVE(CIRCULARSTRING(00,11,10),(10,01))——插值复合曲线CURVEPOLYGON(CIRCULARSTRING(00,40,44,04,00),(11,33,31,11))——曲线多边形MULTICURVE((00,55),CIRCULARSTRING(40,44,84))——多曲线MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(00,40,44,04,00),(11,33,31,11)),((1010,1412,1110,1010),(1111,11.511,1111.5,1111)))——多曲面2.PostGIS特性读写PostGIS目前主要有以下四种方式:1.
使用psql语言select*fromtest1;selectmyID,AsText(pt)fromtest1;selectDistance(pt,'POINT(00)')fromtest1;2.使用一些小工具
有两个小的转换工具,一是shp2pg;一是ogr2ogr。3.在其他GIS软件中读写PostGIS数据比如在QGIS中,能够打开PostGIS图层,还有SPIT插件可以把Shape文件输入到PostGIS数据库中。4.利用接口在应用程序中读写PostGIS数据3.PostGIS读写数据表的建立CreatingaSpatialTable
在PostGIS中创建一个包含几何字段的空间表分为2步:第一步创建一个一般表,第二步给这个表添加几何字段。在test模式下创建一个名为cities的一般表:createtabletest.cities(idint4,namevarchar(20))再给cities添加一个名为shape的几何字段(二维点):selectAddGeometryColumn('test','cities','shape',4326,'POINT',2)4.PostGIS查询语言LoadingGISData4.PostGIS查询语言4.PostGIS查询语言RetrievingGISData4.PostGIS查询语言PostGIS中的空间索引
数据库对多维数据的存取有两种索引方案,R-Tree和GiST(GeneralizedSearchTree),在PostgreSQL中的GiST比R-Tree的健壮性更好,因此PostGIS对空间数据的索引一般采用GiST实现。以下的语句给sde模式中的cities表添加了一个空间索引shape_index_cities,在pgAdmin中也可以通过图形界面完成相同的功能。CREATEINDEXshape_index_citiesONsde.citiesUSINGgist(shape);另外要注意的是,空间索引只有在进行基于边界范围的查询时才起作用,比如“&&”操作。4.PostGIS查询语言ExamplesofSpatialSQL:1.Whatisthetotallengthofallroads,expressedinkilometers?4.PostGIS查询语言SELECTsum(ST_Length(the_geom))/1000ASkm_roadsFROMbc_roads;km_roads------------------70842.1243039643(1row)ExamplesofSpatialSQL:2.Howlargeisthecityofxxx,inhectares?4.PostGIS查询语言SELECTST_Area(the_geom)/10000AShectaresFROMbc_municipalityWHEREname=’xxx’;hectares------------------32657.9103824927(1row)PostGIS函数大致可以分为以下四类:字段处理函数AddGeometryColumn为已有的数据表增加一个地理几何数据字段;DropGeometryColumn删除一个地理数据字段的;SetSRID设置SRID值Probe_Geometry_Columns()检查数据库几何字段并在geometry_columns中归档5.PostGIS函数PostGIS函数大致可以分为以下四类:几何关系函数目前共有13个,分别是:5.PostGIS函数获取两个几何对象间的距离ST_Distance()判断两个几何对象是否相等ST_Equals()判断两个几何对象是否分离ST_Disjoint()判断两个几何对象是否相交ST_Intersects()判断两个几何对象的边缘是否接触ST_Touches()判断两个几何对象是否互相穿过ST_Crosses()判断A是否被B包含ST_Within()判断两个几何对象是否是重叠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,SymDifference,Difference,GeomUnion,MemGeomUnion读写函数这类函数很多,主要是用于在各种数据类型之间的转换,尤其是在于Geometry数据类型与其他如字符型等数据类型之间的转换,函数名如AsText、GeomFromText等。5.PostGIS函数管理函数:删除一个空间表(包括geometry_columns中的记录)DropGeometryTable([],)更新空间表的空间参考UpdateGeometrySRID([],,,)更新空间表的统计信息update_geometry_stats([,])几何对象创建:Dump:转储ST_GeomFromEWKT(text)ST_GeomFromEWKB(bytea)ST_MakePoint(,,[],[])ST_MakePointM(,,)ST_MakeBox2D(,)6.PostGIS扩展函数几何对象编辑:给几何对象添加一个边界,会使查询速度加快ST_AddBBOX(geometry)删除几何对象的边界ST_DropBBOX(geometry)添加、删除、设置点ST_AddPoint(linestring,point,[])线性参考:根据location(0-1)获得该位置的点ST_line_interpolate_point(linestring,location)获取一段线ST_line_substring(linestri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新课标小学语文“学习任务群”的教学思路
- 高中物理第十一章电路及其应用课时13串联电路和并联电路课件新人教版必修第三册
- Windows Server网络管理项目教程(Windows Server 2022)(微课版)5.5 拓展案例1:Web站点安全加固
- 全省小学数学教师赛课一等奖数学一年级上册(人教2024年新编)《10的加、减法》课件
- 2014年腔体耦合器投资分析研究咨询报告
- 2024至2030年中国整体式豆奶机行业投资前景及策略咨询研究报告
- 2024至2030年中国成套污水处理机械设备数据监测研究报告
- 2024至2030年中国家用缝纫机控制器拉杆行业投资前景及策略咨询研究报告
- 高中物理第五章交变电流5电能的输送课件新人教版选修3-
- 2024至2030年中国中频整体退火设备行业投资前景及策略咨询研究报告
- 普通高中生招生计划书
- 牛津深圳版小学英语四年级上册模块检测试卷(含听力材料及答案)全册
- 结核病的并发症的识别与处理
- 汉语拼音课件趣味拼音
- 做一个内核稳定的成年人
- 现代都市人类学 课件全套 第1-9章 绪论-都市人类学研究方法与技术
- 药事管理与法规-暨南大学中国大学mooc课后章节答案期末考试题库2023年
- 2023建筑业10项新技术
- 2023版小学科学课程标准
- 树木大修施工方案
- 电动执行机构安装施工工艺标准
评论
0/150
提交评论