150 likes | 424 Views
空间数据库课程报告. PostGIS 调研. 1301210255 施力. 目录. PostGIS 概述 PostGIS 空间数据类型 PostGIS 查询语言 PostGIS 函数 PostGIS 拓展功能 Oracle Spatial 差异. PostGIS 概述. PostGIS 空间数据类型. 支持 OpenGIS 中所有空间数据类型. OpenGIS 规范. PostGIS 空间数据类型. EWKT, EWKB : 包含了 SRID 信息的 WKT/WKB
E N D
空间数据库课程报告 PostGIS调研 1301210255 施力
目录 • PostGIS概述 • PostGIS空间数据类型 • PostGIS查询语言 • PostGIS函数 • PostGIS拓展功能 • Oracle Spatial差异
PostGIS空间数据类型 • 支持OpenGIS中所有空间数据类型
PostGIS空间数据类型 • EWKT, EWKB:包含了SRID信息的WKT/WKB • SRID(Spatial Referencing System Identifier):每个空间实例都有一个空间引用标识符 (SRID)。SRID 对应于基于特定椭圆体的空间引用系统,可用于平面球体映射或圆球映射。空间列可包含具有不同 SRID 的对象。
PostGIS查询语言 • 表的建立Creating a Spatial Table • 创建一个非空间数据表 • 使用 “AddGeometryColumn”函数为数据表增加空间字段 AddGeometryColumn( <table_name>, <column_name>, <srid>, <type>, <dimension> ) CREATE TABLE parks ( park_id INTEGER, park_name VARCHAR, park_date DATE, park_type VARCHAR ); SELECT AddGeometryColumn(’parks’, ’park_geom’, 128, ’MULTIPOLYGON’, 2 );
PostGIS查询语言 • 空间数据的插入
PostGIS查询语言 • 数据入库后
PostGIS查询语言 • 创建索引 • R-Trees将数据划分为 rectangles, sub-rectangles, sub-sub rectangles等. 但PostgreSQL R树实现没有通用索引树实现健壮. • GiST (Generalized Search Trees):indexes break up data into "things to one side", "things which overlap", "things which are inside" . • PostGIS uses an R-Tree index implemented on top of GiST to index GIS data. CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometryfield] );
PostGIS函数 • PostGIS函数大致可以分为以下四类: • 字段处理函数 • AddGeometryColumn为已有的数据表增加一个地理几何数据字段; • DropGeometryColumn删除一个地理数据字段的; • SetSRID设置SRID值 • 几何关系函数 • 这类函数目前共有10个,分别是: • Distance,Equals,Disjoint,Intersects,Touches,Crosses, Within, Overlaps, Contains, Relate • 几何分析函数 • 这类函数目前共有12个,分别是: • Centroid, Area,Length,PointOnSurface, Boundary, Buffer,ConvexHull, Intersection,SymDifference, Difference,GeomUnion,MemGeomUnion • 读写函数 • 主要是用于在各种数据类型之间的转换,尤其是在于Geometry数据类型与其他如字符型等数据类型之间的转换,函数名如AsText、GeomFromText等
Oracle Spatial 差异 备注:红色内容为PostGIS未支持内容