postgis中的几何类型

	PostGIS支持所有OGC(Open Geospatial Consortium) 规范的“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 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))) //多曲面
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 ST_GeometryType 函数来判断 PostGIS 图层的几何类型。例如,如果你想要检查表名为 "geom_column" 的列的几何类型,可以使用以下 SQL 语句: ``` SELECT ST_GeometryType(geom_column) FROM table_name; ``` 如果 geom_column 包含多种几何类型,则该函数将返回 "GEOMETRYCOLLECTION"。 此外,还可以使用 ST_GeometryTypeCode 函数返回几何类型的数字代码。例如,点几何类型的代码为 1,线几何类型的代码为 2,面几何类型的代码为 3 等。可以使用以下 SQL 语句返回几何类型的数字代码: ``` SELECT ST_GeometryTypeCode(geom_column) FROM table_name; ``` ### 回答2: 要判断PostGIS图层的几何类型,可以使用PostGIS提供的几何函数进行查询和分析。 首先,可以使用ST_GeometryType函数来获取图层几何对象的类型。该函数可以返回几何类型的字符串表示,例如点、线、多边形等。 其次,可以使用ST_IsPoint、ST_IsLineString、ST_IsPolygon等函数来判断几何对象是否是点、线、多边形等特定类型。这些函数返回布尔值,如果几何对象满足条件则返回true,否则返回false。 另外,可以使用ST_Dimension函数来获取几何对象的维度,即对象的类型是0维(点)、1维(线)还是2维(多边形)。该函数返回一个整数,0表示点,1表示线,2表示多边形。 此外,还可以使用ST_NumPoints函数来获取几何对象点的数量。如果返回的值为1,则表示是点;如果大于1,则表示是多点、线或多边形。 以上是一些常用的方法来判断PostGIS图层几何对象的类型,可以根据具体的需求选择适当的函数来进行查询和分析。 ### 回答3: 要判断PostGIS图层的几何类型,可以使用PostGIS提供的函数和查询语句来实现。 首先,我们可以使用以下查询语句来获取图层的几何类型信息: SELECT DISTINCT ST_GeometryType(geom) FROM table_name; 其,table_name是指要查询的图层名称,geom是该图层的几何列名称。 执行上述查询语句后,会返回一个包含不同几何类型的结果集。常见的几何类型包括点(POINT)、线(LINESTRING)、面(POLYGON)等。 此外,如果要判断图层是否存在特定类型几何对象,可以通过以下查询语句来实现: SELECT EXISTS(SELECT 1 FROM table_name WHERE ST_GeometryType(geom) = 'geometry_type'); 其,table_name是要查询的图层名称,geom是几何列名称,geometry_type是要判断的几何类型,如'POINT'、'LINESTRING'、'POLYGON'等。 执行上述查询后,如果返回结果为true,则表示图层存在该几何类型的对象;如果返回结果为false,则表示图层不存在该几何类型的对象。 通过上述方法,我们可以方便地判断PostGIS图层的几何类型,并进行相应的处理和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值