ジオメトリ
ジオメトリ関数を使用すると、POLYGON、LINESTRING、MULTIPOLYGON、MULTILINESTRING、RING、POINT などのジオメトリ型に対して周長および面積を計算できます。ジオメトリは Geometry 型で扱います。入力値が NULL の場合、以下のすべての関数は 0 を返します。
perimeterCartesian
与えられた Geometry オブジェクトの周長を、デカルト(平面)座標系で計算します。
構文
引数
戻り値
例
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 オブジェクトの面積をデカルト座標系で計算します。
構文
引数
返される値
- 数値 — 座標系の単位で表されるオブジェクトの面積。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 オブジェクトの周長を計算します。
構文
引数
戻り値
例
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 オブジェクトの面積を計算します。
構文
引数
戻り値
例
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 │
└────────────────────────┘