跳到主要内容
跳到主要内容

处理多边形的函数

WKT

从各种 Geo 数据类型 返回 WKT(良知文本)几何对象。支持的 WKT 对象有:

  • POINT
  • POLYGON
  • MULTIPOLYGON
  • LINESTRING
  • MULTILINESTRING

语法

参数

geo_data 可以是以下 Geo 数据类型 或其底层原始类型之一:

返回值

  • 对于点,返回 WKT 几何对象 POINT
  • 对于多边形,返回 WKT 几何对象 POLYGON
  • 对于多重多边形,返回 WKT 几何对象 MULTIPOLYGON
  • 对于线字符串,返回 WKT 几何对象 LINESTRING
  • 对于多重线字符串,返回 WKT 几何对象 MULTILINESTRING

示例

从元组获取 POINT:

从元组数组或元组数组数组获取 POLYGON:

从多维元组数组获取 MULTIPOLYGON:

readWKTMultiPolygon

将 WKT(良知文本)多边形转换为 MultiPolygon 类型。

示例

typeoutput
MultiPolygon[[[(2,0),(10,0),(10,10),(0,10),(2,0)],[(4,4),(5,4),(5,5),(4,5),(4,4)]],[[(-10,-10),(-10,-9),(-9,10),(-10,-10)]]]

输入参数

MULTIPOLYGON 开头的字符串

返回值

MultiPolygon

readWKTPolygon

将 WKT(良知文本)多边形转换为 Polygon 类型。

示例

typeoutput
Polygon[[(2,0),(10,0),(10,10),(0,10),(2,0)]]

输入参数

POLYGON 开头的字符串

返回值

Polygon

readWKTPoint

ClickHouse 中的 readWKTPoint 函数解析点几何的良知文本(WKT)表示,并返回 ClickHouse 内部格式的点。

语法

参数

  • wkt_string:表示点几何的输入 WKT 字符串。

返回值

该函数返回点几何的 ClickHouse 内部表示。

示例

readWKTLineString

解析线字符串几何的良知文本(WKT)表示,并返回 ClickHouse 内部格式。

语法

参数

  • wkt_string:表示线字符串几何的输入 WKT 字符串。

返回值

该函数返回线字符串几何的 ClickHouse 内部表示。

示例

readWKTMultiLineString

解析多重线字符串几何的良知文本(WKT)表示,并返回 ClickHouse 内部格式。

语法

参数

  • wkt_string:表示多重线字符串几何的输入 WKT 字符串。

返回值

该函数返回多重线字符串几何的 ClickHouse 内部表示。

示例

readWKTRing

解析表示多边形几何的良知文本(WKT),并返回闭合线字符串的环(ring)在 ClickHouse 内部格式。

语法

参数

  • wkt_string:表示多边形几何的输入 WKT 字符串。

返回值

该函数返回环(闭合线字符串)几何的 ClickHouse 内部表示。

示例

polygonsWithinSpherical

根据一个多边形是否完全位于另一个多边形内返回真或假。参考 https://www.boost.org/doc/libs/1_62_0/libs/geometry/doc/html/geometry/reference/algorithms/within/within_2.html

示例

输入参数

返回值

UInt8,0 表示假,1 表示真

polygonsDistanceSpherical

计算两个点之间的最小距离,其中一个点属于第一个多边形,第二个点属于另一个多边形。球面坐标表示法表示坐标被视为一个纯粹和理想的球体上的坐标,这对于地球来说并不准确。使用这种类型的坐标系统可以加快执行速度,但当然不够精确。

示例

输入参数

两个多边形

返回值

Float64

polygonsDistanceCartesian

计算两个多边形之间的距离

示例

输入参数

两个多边形

返回值

Float64

polygonsEqualsCartesian

如果两个多边形相等,返回真

示例

输入参数

两个多边形

返回值

UInt8,0 表示假,1 表示真

polygonsSymDifferenceSpherical

计算两个多边形之间的空间集合理论对称差 (XOR)

示例

输入参数

多边形

返回值

MultiPolygon

polygonsSymDifferenceCartesian

polygonsSymDifferenceSpherical 相同,但坐标在笛卡尔坐标系中;更接近真实地球的模型。

示例

输入参数

多边形

返回值

MultiPolygon

polygonsIntersectionSpherical

计算多边形之间的交集(与),坐标为球面坐标。

示例

输入参数

多边形

返回值

MultiPolygon

polygonsWithinCartesian

如果第二个多边形位于第一个多边形内,则返回真。

示例

输入参数

两个多边形

返回值

UInt8,0 表示假,1 表示真

polygonConvexHullCartesian

计算凸包。 参考

坐标在笛卡尔坐标系中。

示例

输入参数

MultiPolygon

返回值

Polygon

polygonAreaSpherical

计算多边形的表面积。

示例

输入参数

Polygon

返回值

Float

polygonsUnionSpherical

计算并集(或)。

示例

输入参数

多边形

返回值

MultiPolygon

polygonPerimeterSpherical

计算多边形的周长。

示例

这是代表津巴布韦的多边形:

多边形

查询

输入参数

返回值

polygonsIntersectionCartesian

计算多边形的交集。

示例

输入参数

多边形

返回值

MultiPolygon

polygonAreaCartesian

计算多边形的面积

示例

输入参数

多边形

返回值

Float64

polygonPerimeterCartesian

计算多边形的周长。

示例

输入参数

多边形

返回值

Float64

polygonsUnionCartesian

计算多边形的并集。

示例

输入参数

多边形

返回值

MultiPolygon

有关几何系统的更多信息,请参阅这份关于Boost库的 演示文稿,ClickHouse正是使用这个库。