210 likes | 618 Views
PostGIS 查询语言特性调研报告. 余靖 毅 2013 年 10 月 24 日. 目录 Outline. PostgreSQL / PostGIS 介绍 Standards GIS Objects Geometry & Geography Loading Data Spatial Functions. PostgreSQL 概述. 一种 对象 - 关系型 数据库管理系统( ORDBMS ) 起源于 伯克利 ( BSD )的数据库研究计划
E N D
PostGIS查询语言特性调研报告 余靖毅 2013年10月24日
目录 Outline • PostgreSQL / PostGIS 介绍 • Standards • GIS Objects • Geometry & Geography • Loading Data • Spatial Functions
PostgreSQL 概述 • 一种对象-关系型数据库管理系统(ORDBMS) • 起源于伯克利(BSD)的数据库研究计划 • PostgreSQL是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件数据库管理系统 • 能在多种平台之上运行,包括Linux、MacOS和Windows等 • 支持多种开发语言 • 是目前最重要的开源数据库产品开发项目之一,有着非常广泛的用户
标准 - Standards • SFA SQL • 兼顾了预定义数据类型实现模型,在文本标注类型上更胜一筹 • SQL/MM Part3 : Spatial • 侧重于Geometry扩展空间能力的实现
SFA SQL • 由开放地理空间信息协会(OGC)和国际标准化组织 • ISO 19125 • 定义了SQL模式(SQL Schema) • 支持存储,检索,查询以及要素集的更新等 • 提供相应的操作接口 • Versions • 1999 1.1 • 2005 1.1.0 • 2006 1.2.0 • 2010 1.2.1
SQL/MM Part3 : Spatial开发SQL 多媒体和应用程序包 • ISO/IEC 13249 Part 1: Framework Part 2: Full-Text Part 3: Spatial Part 4: General Purpose Facilities Part 5: Still image Part 6: Data mining Part 7: History Part 8: Metadata registries (MDR) (work in progress) • 定义了空间数据及操作 • 几何对象模型 + 角度和方向的对象模型 • 基于SQL99标准,其扩展环境和SFA中支持的UDT扩展环境一致 国际标准化组织/国际电工委员会第一联合技术委员会/数据管理和交换分技术委员会CISO/IEC JTC1/SC32)
PostGIS 介绍 • PostGIS是PostgreSQL的一个扩展 • PostGIS提供一系列的空间信息服务功能: 空间对象(GIS Object) • 空间索引 (Spatial Index ) • 空间操作函数 (Spatial Function) • PostGIS遵循OpenGIS的规范
GIS Objects • a superset of the “Simple Features” defined by OGC • (是OGC定义的简单要素类的一个超集) • ver >=0.9, supports all the objects and functions specified in the OGC “Simple Features for SQL” specification • (支持所有OGC“Simple Features for SQL”对象和方法) • Extends the standard with support for 3DZ, 3DM and 4D coordinates • WKT(Well-Know Text), WKB(Well-Know Binary) • EWKT, EWKB • (支持3DZ,3DM以及4D坐标系)
GIS Objects • POINT • LINESTRING • POLYGON • MULTIPOINT • MULTILINESTRING • MULTIPOLYGON • GEOMETRYCOLLECTION • POINT(0 0 0) -- XYZ • SRID=32632;POINT(0 0) -- XY with SRID • POINTM(0 0 0) – XYM • POINT(0 0 0 0) -- XYZM • SRID=4326;MULTIPOINTM(0 0 0,1 2 1) -- XYM with SRID • MULTILINESTRING • POLYGON • MULTIPOLYGON • GEOMETRYCOLLECTIONM • MULTICURVE • POLYHEDRALSURFACE • TRIANGLE • TIN • CIRCULARSTRING • COMPOUNDCURVE • CURVEPOLYGON • MULTICURVE • MULTISURFACE
WKT — Well-Know Text • WKT Example • POINT(0 0) • LINESTRING(0 0,1 1,1 2) • POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1)) • Construct Function • geometry = ST_GeometryFromText(text WKT, SRID); • Insert T-SQL
EWKT — Extend Well-Know Text • EWKT Example • POINT(0 0 0) -- XYZ • SRID=32632;POINT(0 0) -- XY with SRID • POINTM(0 0 0) – XYM • POINT(0 0 0 0) -- XYZM • Construct Function • geometry = ST_GeomFromEWKT(text EWKT); • Insert T-SQL
SQL/MM Part3 Spatial • Extending circular curve & Defining a number of circularly interpolated curves • (扩展了一些曲线类型:通过线性插值的方法) • Type • CircularString • CompoundCurve • CurvePolygon • MultiCurve • MultiSurface • Examples • CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0) • COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 1, 1 0),(1 0, 0 1))
2 Types : Geometry & Geography • Geometry(plane) • The shortest path between two points on the plane is a straightline. (两点之间的最短距离是平面上的一条直线) • GEOMETRY_COLUMNS • geometry = ST_GeomFromText(text WKT, SRID); • Geography(sphere) • The shortest path between two points on the sphere is a great CircleArc.(两点之间的最短距离是一个弧段) • GEOGRAPHY_COLUMNS • lat/loncoordinate(使用的是经纬度) • only supports WGS 84 lonlat (SRID:4326)(基于大地坐标系) • geography = ST_GeogFromText(text EWKT);
Geography Basic • 仅仅只支持一些最简单的简单要素 • 对于空间参考系(SRID)是 4326的几何对象(Geometry)可以自动转换成地理对象(Geography) • 相比与几何对象(Geometry)空间操作的方法较少,而且更加耗时 • 生成空间表的方法
加载数据 — Loading Data • 2种方式 • 使用SQL Statement • 使用Shape file加载器 • shp2pgsql • pgsql2shp
Spatial Functions • Management Functions(管理函数) • Geometry Constructors(构造) • Geometry Accessors(访问) • Geometry Editors(编辑) • Geometry Outputs(输出) • Operators(操作符) • Spatial Relationships and Measurements(空间关系和量算) • Geometry Processing(处理)
Reference • Chapter 1: Introduction to Spatial Databases. www.spatial.cs.umn.edu/Book/slides/ch1revised.ppt. • Refractions Inc. PostGIS 2.1.1 Manual. http://postgis.refractions.net/. • http://en.wikipedia.org/wiki/SQL. • http://en.wikipedia.org/wiki/Simple_feature_access. • Open Geospatial Consortium Inc. OpenGIS Implementation Specification for Geographic information-Simple feature access-Part 2:SQL option,2006. • ISO/IEC 13249-3.Information Technology Database Languages SQL Multimedia and Application Packages Part 3:Spatial,2006. • 张纯等,两种主流空间数据库国际标准与应用分析[J].地球信息科学报,2009,11(4),526-533. • 徐承志,许承瑜,钱铁云,基于GIS系统的空间查询语言[J].计算机科学,2010(7),Vol(37).No(6),207-213.