ポリゴン操作のための関数
WKT
さまざまな Geo Data Types から WKT (Well Known Text) ジオメトリオブジェクトを返します。サポートされている WKT オブジェクトは以下の通りです:
- POINT
- POLYGON
- MULTIPOLYGON
- LINESTRING
- MULTILINESTRING
構文
パラメータ
geo_data
は次のいずれかの Geo Data Types またはその基本型のいずれかである必要があります:
戻り値
- Point の場合、WKT ジオメトリオブジェクト
POINT
が返されます。 - Polygon の場合、WKT ジオメトリオブジェクト
POLYGON
が返されます。 - MultiPolygon の場合、WKT ジオメトリオブジェクト
MULTIPOLYGON
が返されます。 - LineString の場合、WKT ジオメトリオブジェクト
LINESTRING
が返されます。 - MultiLineString の場合、WKT ジオメトリオブジェクト
MULTILINESTRING
が返されます。
例
タプルからの POINT:
タプルの配列またはタプルの配列からの POLYGON:
多次元タプルの配列からの MULTIPOLYGON:
readWKTMultiPolygon
WKT (Well Known Text) の MultiPolygon を MultiPolygon 型に変換します。
例
type | output |
---|---|
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 (Well Known Text) の MultiPolygon を Polygon 型に変換します。
例
type | output |
---|---|
Polygon | [[(2,0),(10,0),(10,10),(0,10),(2,0)]] |
入力パラメータ
POLYGON
で始まる文字列
戻り値
Polygon
readWKTPoint
readWKTPoint
関数は、Point ジオメトリの Well-Known Text (WKT) 表現を解析し、内部 ClickHouse 形式のポイントを返します。
構文
引数
wkt_string
: Point ジオメトリを表す入力 WKT 文字列。
戻り値
この関数は、Point ジオメトリの ClickHouse 内部表現を返します。
例
readWKTLineString
LineString ジオメトリの Well-Known Text (WKT) 表現を解析し、内部 ClickHouse 形式で返します。
構文
引数
wkt_string
: LineString ジオメトリを表す入力 WKT 文字列。
戻り値
この関数は、LineString ジオメトリの ClickHouse 内部表現を返します。
例
readWKTMultiLineString
MultiLineString ジオメトリの Well-Known Text (WKT) 表現を解析し、内部 ClickHouse 形式で返します。
構文
引数
wkt_string
: MultiLineString ジオメトリを表す入力 WKT 文字列。
戻り値
この関数は、MultiLineString ジオメトリの ClickHouse 内部表現を返します。
例
readWKTRing
Polygon ジオメトリの Well-Known Text (WKT) 表現を解析し、内部 ClickHouse 形式のリング(閉じたラインストリング)を返します。
構文
引数
wkt_string
: Polygon ジオメトリを表す入力 WKT 文字列。
戻り値
この関数は、リング(閉じたラインストリング)ジオメトリの ClickHouse 内部表現を返します。
例
polygonsWithinSpherical
あるポリゴンが別のポリゴンの完全に内側にあるかどうかに応じて true または false を返します。 参考: https://www.boost.org/doc/libs/1_62_0/libs/geometry/doc/html/geometry/reference/algorithms/within/within_2.html
例
入力パラメータ
戻り値
UInt8、falseの場合は0、trueの場合は1
polygonsDistanceSpherical
1つのポリゴンに属する点と別のポリゴンに属する点の間の最小距離を計算します。球面とは、座標が純粋な理想的な球の上にあると解釈されることを意味しますが、これは地球には当てはまりません。このタイプの座標系を使用すると、実行速度が向上しますが、もちろん精度は低下します。
例
入力パラメータ
2つのポリゴン
戻り値
Float64
polygonsDistanceCartesian
2つのポリゴン間の距離を計算します。
例
入力パラメータ
2つのポリゴン
戻り値
Float64
polygonsEqualsCartesian
2つのポリゴンが等しい場合は true を返します。
例
入力パラメータ
2つのポリゴン
戻り値
UInt8、falseの場合は0、trueの場合は1
polygonsSymDifferenceSpherical
2つのポリゴン間の空間的集合的対称差(XOR)を計算します。
例
入力パラメータ
ポリゴン
戻り値
MultiPolygon
polygonsSymDifferenceCartesian
polygonsSymDifferenceSpherical
と同様ですが、座標はデカルト座標系にあり、これは実際の地球モデルにより近いです。
例
入力パラメータ
ポリゴン
戻り値
MultiPolygon
polygonsIntersectionSpherical
ポリゴン間の交差(AND)を計算します。座標は球面です。
例
入力パラメータ
ポリゴン
戻り値
MultiPolygon
polygonsWithinCartesian
2つ目のポリゴンが最初のポリゴンの内側にある場合、true を返します。
例
入力パラメータ
2つのポリゴン
戻り値
UInt8、falseの場合は0、trueの場合は1
polygonConvexHullCartesian
凸包を計算します。 参考
座標はデカルト座標系です。
例
入力パラメータ
MultiPolygon
戻り値
Polygon
polygonAreaSpherical
ポリゴンの表面積を計算します。
例
入力パラメータ
Polygon
戻り値
Float
polygonsUnionSpherical
和集合 (OR) を計算します。
例
入力パラメータ
ポリゴン
戻り値
MultiPolygon
polygonPerimeterSpherical
ポリゴンの周囲を計算します。
例
slug: /sql-reference/functions/geo/polygons sidebar_label: ポリゴン title: "ポリゴンを操作するための関数"
WKT
さまざまな Geo Data Types から WKT (Well Known Text) ジオメトリオブジェクトを返します。サポートされている WKT オブジェクトは以下のとおりです。
- POINT
- POLYGON
- MULTIPOLYGON
- LINESTRING
- MULTILINESTRING
構文
パラメータ
geo_data
は次のいずれかの Geo Data Types またはその基礎となるプリミティブ型のいずれかです:
返される値
- Point に対して WKT ジオメトリオブジェクト
POINT
が返されます。 - Polygon に対して WKT ジオメトリオブジェクト
POLYGON
が返されます。 - MultiPolygon に対して WKT ジオメトリオブジェクト
MULTIPOLYGON
が返されます。 - LineString に対して WKT ジオメトリオブジェクト
LINESTRING
が返されます。 - MultiLineString に対して WKT ジオメトリオブジェクト
MULTILINESTRING
が返されます。
例
タプルからの POINT:
タプルまたはタプルの配列からの POLYGON:
多次元タプルの配列からの MULTIPOLYGON:
readWKTMultiPolygon
WKT (Well Known Text) MultiPolygon を MultiPolygon タイプに変換します。
例
type | output |
---|---|
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 (Well Known Text) ポリゴンを Polygon タイプに変換します。
例
type | output |
---|---|
Polygon | [[(2,0),(10,0),(10,10),(0,10),(2,0)]] |
入力パラメータ
POLYGON
で始まる文字列
返される値
Polygon
readWKTPoint
readWKTPoint
関数は、Point ジオメトリの Well-Known Text (WKT) 表現を解析し、ClickHouse インターナルフォーマットのポイントを返します。
構文
引数
wkt_string
: Point ジオメトリを表す入力 WKT 文字列。
返される値
この関数は、Point ジオメトリの ClickHouse 内部表現を返します。
例
readWKTLineString
Well-Known Text (WKT) 表現の LineString ジオメトリを解析し、ClickHouse 内部フォーマットで返します。
構文
引数
wkt_string
: LineString ジオメトリを表す入力 WKT 文字列。
返される値
この関数は、ClickHouse 内部表現の LineString ジオメトリを返します。
例
readWKTMultiLineString
Well-Known Text (WKT) 表現の MultiLineString ジオメトリを解析し、ClickHouse 内部フォーマットで返します。
構文
引数
wkt_string
: MultiLineString ジオメトリを表す入力 WKT 文字列。
返される値
この関数は、ClickHouse 内部表現の MultiLineString ジオメトリを返します。
例
readWKTRing
WKT (Well Known Text) ポリゴンジオメトリの表現を解析し、内部 ClickHouse フォーマットでリング(閉じた LineString)を返します。
構文
引数
wkt_string
: ポリゴンジオメトリを表す入力 WKT 文字列。
返される値
この関数は、リング(閉じた LineString)ジオメトリの ClickHouse 内部表現を返します。
例
polygonsWithinSpherical
1 つのポリゴンが別のポリゴンの内部に完全に収まるかどうかを判定し、真または偽を返します。参考文献 https://www.boost.org/doc/libs/1_62_0/libs/geometry/doc/html/geometry/reference/algorithms/within/within_2.html
例
入力パラメータ
返される値
UInt8、0 は偽、1 は真を表します。
polygonsDistanceSpherical
1 つのポイントが最初のポリゴンに、2 番目が別のポリゴンに属する場合の最小距離を計算します。球面の意味は、座標が完全かつ理想的な球上の座標として解釈されることを意味しますが、これは地球には適用されません。このタイプの座標系を使用すると実行が高速化されますが、当然のことながら正確ではありません。
例
入力パラメータ
2 つのポリゴン
返される値
Float64
polygonsDistanceCartesian
2 つのポリゴン間の距離を計算します。
例
入力パラメータ
2 つのポリゴン
返される値
Float64
polygonsEqualsCartesian
2 つのポリゴンが等しい場合に真を返します。
例
入力パラメータ
2 つのポリゴン
返される値
UInt8、0 は偽、1 は真を表します。
polygonsSymDifferenceSpherical
2 つのポリゴン間の空間的な集合論的対称差(XOR)を計算します。
例
入力パラメータ
ポリゴン
返される値
MultiPolygon
polygonsSymDifferenceCartesian
polygonsSymDifferenceSpherical
と同様ですが、座標はデカルト座標系にあり、実際の地球のモデルにより近くなっています。
例
入力パラメータ
ポリゴン
返される値
MultiPolygon
polygonsIntersectionSpherical
ポリゴン間の交差点(AND)を計算します。座標は球面です。
例
入力パラメータ
ポリゴン
返される値
MultiPolygon
polygonsWithinCartesian
2 番目のポリゴンが最初のポリゴンの内部にある場合は真を返します。
例
入力パラメータ
2 つのポリゴン
返される値
UInt8、0 は偽、1 は真を表します。
polygonConvexHullCartesian
凸包を計算します。参照
座標はデカルト座標系です。
例
入力パラメータ
MultiPolygon
返される値
Polygon
polygonAreaSpherical
ポリゴンの表面積を計算します。
例
入力パラメータ
Polygon
返される値
Float
polygonsUnionSpherical
共通部分(OR)を計算します。
例
入力パラメータ
ポリゴン
返される値
MultiPolygon
polygonPerimeterSpherical
ポリゴンの周囲を計算します。
入力パラメータ
返される値
polygonsIntersectionCartesian
ポリゴンの交差を計算します。
例
入力パラメータ
ポリゴン
返される値
MultiPolygon
polygonAreaCartesian
ポリゴンの面積を計算します。
例
入力パラメータ
Polygon
返される値
Float64
polygonPerimeterCartesian
ポリゴンの周囲を計算します。
例
入力パラメータ
Polygon
返される値
Float64
polygonsUnionCartesian
ポリゴンの和を計算します。
例
入力パラメータ
ポリゴン
返される値
MultiPolygon
ジオメトリシステムに関する詳細は、ClickHouse が使用している Boost ライブラリに関するこの プレゼンテーション を参照してください。