PostGIS之路——数据类型

PostGIS之路——数据类型
PostGIS⽀持所有OGC规范的简单⼏何要素类型,同时在此基础上扩展了对3DZ、3DM、4D坐标的⽀持。栓剂
⼀、⼏何类型(Geometry Type):他的⼏何基础是平⾯,两点之间的距离认为是直线距离,可以⽤数据笛卡尔或直线向量计算。
1. OGC的WKB和WKT格式
OGC定义了两种描述⼏何对象的格式,分别是WKB(Well-Known Binary)和WKT(Well-Known Text)。
在SQL语句中,⽤以下的⽅式可以使⽤WKT格式定义⼏何对象:
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)) ——⾯
MULTIPOINT(0 0,1 2) ——多点
MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4)) ——多线
MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1))) ——多⾯
有一种新型节能灯
GEOMETRYCOLLECTION(POINT(2 3),LINESTRING((2 3,3 4))) ——⼏何集合
以下语句可以使⽤WKT格式插⼊⼀个点要素到⼀个表中,其中⽤到的GeomFromText等函数在后⾯会有详细介绍:
INSERT INTO table ( SHAPE, NAME ) VALUES ( GeomFromText('POINT(116.39 39.9)', 4326), '北京');
2. EWKT、EWKB和Canonical格式
EWKT和EWKB相⽐OGC WKT和WKB格式主要的扩展有3DZ、3DM、4D坐标和内嵌空间参考⽀持。
以下以EWKT语句定义了⼀些⼏何对象:
POINT(0 0 0) ——3D点
SRID=32632;POINT(0 0) ——内嵌空间参考的点
POINTM(0 0 0) ——带M值的点
POINT(0 0 0 0) ——带M值的3D点
SRID=4326;MULTIPOINTM(0 0 0,1 2 1) ——内嵌空间参考的带M值的多点
以下语句可以使⽤EWKT格式插⼊⼀个点要素到⼀个表中:
INSERT INTO table ( SHAPE, NAME ) VALUES ( GeomFromEWKT('SRID=4326;POINTM(116.39 39.9 10)'), '北京' )
Canonical格式是16进制编码的⼏何对象,直接⽤SQL语句查询出来的就是这种格式。
3. SQL-MM格式
二苯甲醇
SQL-MM格式定义了⼀些插值曲线,这些插值曲线和EWKT有点类似,也⽀持3DZ、3DM、4D坐标,但是不⽀持嵌⼊空间参考。
以下以SQL-MM语句定义了⼀些插值⼏何对象:
CIRCULARSTRING(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)),((10 10, 14 12, 11 10, 10 10),(11 11, 11.5 11, 11 11.5, 11 11))) ——多曲⾯
⼆、地理类型(Geography Type)
地理类型提供⽀持本地空间特性的“地理”坐标(有时称为“⼤地”坐标,或“纬度/经度”,或“经度/纬度”)。它的⼏何基础是球⾯。计算两点间的距离相当于计算圆弧的距离,不能使⽤平⾯⼏何原理,需要通过其他参考⽅法计算。由于底层算法复杂,定义的地理类型⽐空间类型少很多,随之算法的增加,将出现新的地理类型。
PostGresSQl8.3推出⼀张表辅助空间参考表:spatial_ref_sys表,它存放的是OGC规范的空间参考。辅助转化。 地理类型只⽀持简单的简单的元素。标准⼏何类型数据将⾃动转换到地理WGS84坐标。您还可以使⽤EWKT和EWKB约定来插⼊数据。
如下创建表:
CREATE TABLE global_points (
鸡解剖图
id SERIAL PRIMARY KEY,
name VARCHAR(64),
location GEOGRAPHY(POINT,4326)
);
插⼊数据:
INSERT INTO global_points (name, location) VALUES ('London', ST_GeographyFromText('SRID=4326; POINT(-72.1235 42.3521)'));
三、box2d
box2d是⼀中包含 x min, ymin, xmax, ymax的⼆维⼏何类型,反映封闭箱⼦状⼏何对象的范围。ST_Extent函数返回⼀个box2d对象。
四、box3d
x抗体box3d是postgis包含 x min, ymin, zmin, xmax, ymax, zmax,反映三维的⼏何类型。ST_3DExtent 函数返回⼀个box3d对象。
五、geometry_dump
⼀种存储geom和路径两个字段的数据类型,是⼀个复合数据类型,可以根据数组原理,导航获取路径某个位置的元素,可以反映⼀个复杂的⼏何对象的组合部分和定位部分。

本文发布于:2024-09-25 06:18:46,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/172329.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:空间   类型   地理   参考   距离   对象   定义
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议