PostgreSQL+PostGIS的使用 1

前端之家收集整理的这篇文章主要介绍了PostgreSQL+PostGIS的使用 1前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

二、 PostGIS中的几何类型

PostGIS支持所有OGC规范的“Simple Features”类型,同时在此基础上扩展了对3DZ、3DM、4D坐标的支持

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 2),(2 3,3 2,5 4)) ——多线
MULTIPOLYGON(((0 0,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 0) ——插值圆弧 COMPOUNDCURVE(CIRCULARSTRING(0 0,1 0),(1 0,0 1)) ——插值复合曲线 CURVEPOLYGON(CIRCULARSTRING(0 0,3 3,3 1,1 1)) ——曲线多边形 MULTICURVE((0 0,5 5),CIRCULARSTRING(4 0,8 4)) ——多曲线 MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(0 0,((10 10,14 12,11 10,10 10),(11 11,11.5 11,11 11.5,11 11))) ——多曲面

猜你在找的Postgre SQL相关文章