几何处理函数
几何
几何函数可用于计算 POLYGON、LINESTRING、MULTIPOLYGON、MULTILINESTRING、RING 和 POINT 等几何类型的周长和面积。将这些几何对象表示为 Geometry 类型。若输入值为 NULL,则以下所有函数均返回 0。
perimeterCartesian
在笛卡尔(平面)坐标系下计算给定 Geometry 对象的周长。
语法 perimeterCartesian(geom)
输入值
geom— Geometry 对象。Geometry。
返回值
- 数值 — 对象在该坐标系下的周长,单位与坐标系一致。Float64。
示例 CREATE TABLE IF NOT EXISTS geo_dst (geom Geometry) ENGINE = Memory(); INSERT INTO geo_dst SELECT readWkt('POLYGON((0 0,1 0,1 1,0 1,0 0))'); SELECT perimeterCartesian(geom) FROM geo_dst;
结果: ┌─perimeterCartesian(geom)─┐ │ 4.0 │ └──────────────────────────┘
areaCartesian
在笛卡尔坐标系下计算给定 Geometry 对象的面积。
语法 areaCartesian(geom)
输入值
geom— Geometry 对象。Geometry。
返回值
- 数值 — 对象在坐标系单位中的面积。Float64。
示例 CREATE TABLE IF NOT EXISTS geo_dst (geom Geometry) ENGINE = Memory(); INSERT INTO geo_dst SELECT readWkt('POLYGON((0 0,1 0,1 1,0 1,0 0))'); SELECT areaCartesian(geom) FROM geo_dst;
结果: ┌─areaCartesian(geom)─┐ │ -1 │ └─────────────────────┘
perimeterSpherical
计算球面上 Geometry 对象的周长。
语法 perimeterSpherical(geom)
输入值
geom— Geometry 对象。Geometry。
返回值
- 数值 — 周长。Float64。
示例 CREATE TABLE IF NOT EXISTS geo_dst (geom Geometry) ENGINE = Memory(); INSERT INTO geo_dst SELECT readWkt('LINESTRING(0 0,1 0,1 1,0 1,0 0)'); SELECT perimeterSpherical(geom) FROM geo_dst;
结果: ┌─perimeterSpherical(geom)─┐ │ 0 │ └──────────────────────────┘
areaSpherical
计算球面上 Geometry 对象的面积。
语法 areaSpherical(geom)
输入值
geom— Geometry 类型的几何对象。参见 Geometry。
返回值
- 数值 — 面积。参见 Float64。
示例 CREATE TABLE IF NOT EXISTS geo_dst (geom Geometry) ENGINE = Memory(); INSERT INTO geo_dst SELECT readWkt('POLYGON((0 0,1 0,1 1,0 1,0 0))'); SELECT areaSpherical(geom) FROM geo_dst;
结果: ┌─areaSpherical(geom)─┐ │ -0.0003046096848622019 │ └──────────────────────┘