ST_Union

ST_Union - 返回一个代表点集的几何几何。

简介

geometry ST_Union(geometry set g1field);

geometry ST_Union(geometry g1, geometry g2);

geometry ST_Union(geometry[] g1_array);

 

描述几何

输出类型可以是一个多*,单一的几何形状,几何集合。自带2变种。变体1联合2的几何形状,产生一个新的没有相交的几何区域。变种2是一个聚合函数,它接受一组几何图形和工会成单个ST_Geometry导致没有交叉的区域。

总结版:这个函数返回一个多几何或从一组几何形状几何非多。ST_Union()函数是一个“聚合”功能的术语的PostgreSQL。这意味着,它操作的行数据,以同样的方式,SUM()和AVG()函数做。

非聚合版本:这个函数返回一个工会的两个输入几何形状的几何。输出类型可以是一个多*,非多的GeometryCollection的。

[注意]  

ST_Collect和ST_Union往往是可以互换的。ST_Union级比ST_Collect慢的通例,因为它试图化解边界和重新排列的几何形状,以确保构造多*没有相交的区域。

演出由GEOS模块。

注:此功能以前称为GeomUnion的(),更名为“联盟”,因为联盟是一个SQL的保留字。

可用性:1.4.0 - ST_Union的增强。ST_Union(geomarray)介绍和更快的总集合在PostgreSQL中。如果您使用的是3.1.0 GEOS + ST_Union将使用更快的级联联盟算法在http://blog.cleverelephant.ca/2009/01/must-faster-unions-in-postgis-14.html

 此方法实现OpenGIS的简单功能实现SQL 1.1规范。 s2.1.1.3

[注意]  

总额版本没有明确定义在OGC SPEC。

此方法实现SQL / MM的规范。SQL-MM:5.1.19的z-index(高程)时,多边形参与。

示例

 

SELECT stusps,
	   ST_Multi(ST_Union(f.the_geom)) as singlegeom
	 FROM sometable As f
GROUP BY stusps
			  

Non-Aggregate example

 

SELECT ST_AsText(ST_Union(ST_GeomFromText('POINT(1 2)'),
	ST_GeomFromText('POINT(-2 3)') ) )

st_astext
----------
MULTIPOINT(-2 3,1 2)


SELECT ST_AsText(ST_Union(ST_GeomFromText('POINT(1 2)'),
		ST_GeomFromText('POINT(1 2)') ) );
st_astext
----------
POINT(1 2)

--3d example - sort of supports 3d (and with mixed dimensions!)
SELECT ST_AsEWKT(st_union(the_geom))
FROM
(SELECT ST_GeomFromEWKT('POLYGON((-7 4.2,-7.1 4.2,-7.1 4.3,
-7 4.2))') as the_geom
UNION ALL
SELECT ST_GeomFromEWKT('POINT(5 5 5)') as the_geom
UNION ALL
	SELECT ST_GeomFromEWKT('POINT(-2 3 1)') as the_geom
UNION ALL
SELECT ST_GeomFromEWKT('LINESTRING(5 5 5, 10 10 10)') as the_geom ) as foo;

st_asewkt
---------
GEOMETRYCOLLECTION(POINT(-2 3 1),LINESTRING(5 5 5,10 10 10),POLYGON((-7 4.2 5,-7.1 4.2 5,-7.1 4.3 5,-7 4.2 5)));

--3d example not mixing dimensions
SELECT ST_AsEWKT(st_union(the_geom))
FROM
(SELECT ST_GeomFromEWKT('POLYGON((-7 4.2 2,-7.1 4.2 3,-7.1 4.3 2,
-7 4.2 2))') as the_geom
UNION ALL
SELECT ST_GeomFromEWKT('POINT(5 5 5)') as the_geom
UNION ALL
	SELECT ST_GeomFromEWKT('POINT(-2 3 1)') as the_geom
UNION ALL
SELECT ST_GeomFromEWKT('LINESTRING(5 5 5, 10 10 10)') as the_geom ) as foo;

st_asewkt
---------
GEOMETRYCOLLECTION(POINT(-2 3 1),LINESTRING(5 5 5,10 10 10),POLYGON((-7 4.2 2,-7.1 4.2 3,-7.1 4.3 2,-7 4.2 2)))

--Examples using new Array construct
SELECT ST_Union(ARRAY(SELECT the_geom FROM sometable));

SELECT ST_AsText(ST_Union(ARRAY[ST_GeomFromText('LINESTRING(1 2, 3 4)'),
			ST_GeomFromText('LINESTRING(3 4, 4 5)')])) As wktunion;

--wktunion---
MULTILINESTRING((3 4,4 5),(1 2,3 4))


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值