このトピックでは、地理空間関数の構文について説明し、関数の使用方法の例を示します。
概要
ST_prefixで始まる地理空間関数は、SQL/MM標準およびOpen Geospatial Consortium (OGC) のOpenGIS Abstract Specificationに準拠しています。 地理空間関数は、よく知られたテキスト (WKT) 表現を使用して、点、線列、ポリゴンなどのジオメトリを記述します。 次の表は、ジオメトリと、ジオメトリを記述するために使用されるWKT表現を示しています。
ジオメトリ | WKT表現 |
Point | POINT (0 0) |
Line string | LINESTRING (0 0, 1 1, 1 2) |
Polygon | POLYGON((0 0, 4 0, 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1)) |
マルチポイント | マルチポイント (0 0, 1 2) |
マルチライン文字列 | マルチリンスティング ((0 0, 1 1, 1 2), (2 3, 3 2, 5 4)) |
マルチポリゴン | MULTIPOLYGON(((0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -2, -2 -1, -1 -1))) |
Geometry collection | GEOMETRYCOLLECTION(POINT(2 3) 、LINESTRING(2 3, 3 4)) |
関数
データ型 | 関数 | 構文 | 制限事項 | SQLのサポート | SPLのサポート |
コンストラクタ | ST_AsText( x) | ジオメトリのWKT表現を返します。 | √ | × | |
ST_GeometryFromText( x) | 指定されたWKT表現からジオメトリを返します。 | √ | × | ||
ST_LineFromText( x) | 指定されたWKT表現から行文字列を返します。 | √ | × | ||
ST_Polygon( x) | 指定されたWKT表現からポリゴンを返します。 | √ | × | ||
ST_Point( x, y) | 指定されたWKT表現から点を返します。 | √ | × | ||
演算子 | ST_Boundary( x) | ジオメトリの組み合わせ境界のクロージャを返します。 | √ | × | |
ST_Buffer( x, distance) | 指定したジオメトリからの距離が指定した距離以下であるすべての点を表すジオメトリを返します。 | √ | × | ||
ST_Difference( x, y) | 指定した2つのジオメトリのポイントセットの差を表すジオメトリを返します。 | √ | × | ||
ST_Envelope( x) | ジオメトリの境界のある四角形ポリゴンを返します。 | √ | × | ||
ST_ExteriorRing( x) | ジオメトリの外部リングを表す行文字列を返します。 | √ | × | ||
ST_Intersection( x, y) | 指定した2つのジオメトリのポイントセットの交点を表すジオメトリを返します。 | √ | × | ||
ST_SymDifference( x, y) | 指定した2つのジオメトリの点集合対称差を表すジオメトリを返します。 | √ | × | ||
空間関係テスト | ST_Contains( x, y) | 第2のジオメトリの点が第1のジオメトリの外部になく、第1のジオメトリの内部の少なくとも1つの点が第2のジオメトリの内部にある場合、trueを返します。 配列に指定された要素が含まれている場合、関数はtrueを返します。 | √ | × | |
ST_Crosses( x, y) | 指定した2つのジオメトリに複数の内部点が共通する場合はtrueを返します。 はいの場合、関数はtrueを返します。 | √ | × | ||
ST_Disjoint( x, y) | 指定された2つのジオメトリが2次元空間の一部を共有しない場合はtrueを返します。 指定した2つのジオメトリが2次元空間の一部を共有しない場合、関数はtrueを返します。 | √ | × | ||
ST_Equals( x, y) | 指定された2つのジオメトリが同じジオメトリを表す場合はtrueを返します。 はいの場合、関数はtrueを返します。 | √ | × | ||
ST_Intersects( x, y) | 指定した2つのジオメトリが2次元空間の一部を共有する場合はtrueを返します。 はいの場合、関数はtrueを返します。 | √ | × | ||
ST_Overlaps( x, y) | 指定した2つのジオメトリがスペースを共有し、同じ寸法を持つが、互いに完全には含まれていない場合はtrueを返します。 はいの場合、関数はtrueを返します。 | √ | × | ||
ST_Relate( x, y, patternMatrix string) | 指定した2つのジオメトリに空間関係がある場合はtrueを返します。 はいの場合、関数はtrueを返します。 | √ | × | ||
ST_Touches( x, y) | 指定された2つのジオメトリに少なくとも1つの共通点があるが、それらの内部が交差しない場合はtrueを返します。 はいの場合、関数はtrueを返します。 | √ | × | ||
ST_Within( x, y) | 最初のジオメトリが完全に2番目のジオメトリの内側にある場合はtrueを返します。 はいの場合、関数はtrueを返します。 | √ | × | ||
アクセサリー | ST_Area( x) | ユークリッド距離法を使用して、2次元平面上のジオメトリの投影面積を計算します。 | √ | × | |
ST_Centroid( x) | ジオメトリの数学的重心を表すポイント値を返します。 | √ | × | ||
ST_CoordDim( x) | ジオメトリの座標次元を返します。 | √ | × | ||
ST_Dimension( x) | ジオメトリの固有の寸法を返します。 固有の寸法は、座標寸法以下でなければなりません。 | √ | × | ||
ST_Distance( x, y) | 2 つのジオメトリ間の最小距離を返します。 | √ | × | ||
ST_EndPoint( x) | 行文字列の最後の点を返します。 | √ | × | ||
ST_IsClosed( x) | 行文字列の始点が終点と一致する場合はtrueを返します。 はいの場合、関数はtrueを返します。 | √ | × | ||
ST_IsEmpty( x) | ジオメトリが空の場合はtrueを返します。 はいの場合、関数はtrueを返します。 | √ | × | ||
ST_IsRing( x) | 行文字列が閉じて単純な場合はtrueを返します。 はいの場合、関数はtrueを返します。 | √ | × | ||
ST_Length( x) | ユークリッド距離法を使用して、2次元平面上の線列の投影長を計算します。 複数の行文字列が存在する場合、関数は複数の行文字列の長さの合計を返します。 | √ | × | ||
ST_NumPoints( x) | ジオメトリ内の点の数を返します。 | √ | × | ||
ST_NumInteriorRing( x) | ジオメトリ内の内部リングの数を返します。 | √ | × | ||
ST_StartPoint( x) | 行文字列の最初の点を返します。 | √ | × | ||
ST_X( x) | 入力点の最初のX軸座標を返します。 | √ | × | ||
ST_XMax( x) | ジオメトリの最大の最初のX座標を返します。 | √ | × | ||
ST_XMin( x) | ジオメトリの最小の最初のX座標を返します。 | √ | × | ||
ST_Y( x) | 入力点の最初のY軸座標を返します。 | √ | × | ||
ST_YMax( x) | ジオメトリの最大の最初のY座標を返します。 | √ | × | ||
ST_YMin( x) | ジオメトリの最小の最初のY座標を返します。 | √ | × | ||
Bingタイル | bing_tile( x、y、zoom_level) | 次の関数は、X座標、Y座標、およびズームレベルに基づいてBingタイルを返します。 | √ | × | |
bing_tile( quadKey) | 次の関数は、4分木キーに基づいてBingタイルを返します。 | √ | × | ||
bing_tile_at( x、y、zoom_level) | 緯度、経度、およびズームレベルに基づいてBingタイルを返します。 | √ | × | ||
bing_tile_coordinates( x) | BingタイルのX座標とY座標を返します。 | √ | × | ||
bing_tile_polygon( x) | Bingタイルのポリゴン形式を返します。 | √ | × | ||
bing_tile_quadkey( x) | Bingタイルの4分木キーを取得します。 | √ | × | ||
bing_tile_zoom_level( x) | Bingタイルのズームレベルを取得します。 | √ | × |
ST_AsText関数
ST_AsText関数は、ジオメトリのWKT表現を返します。
構文
ST_AsText(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
varcharタイプ。
例
点のWKT表現を取得します。
クエリ文
* | SELECT ST_AsText(ST_Point(1,1))
クエリと分析結果
ST_GeometryFromText関数
ST_GeometryFromText関数は、指定したWKT表現からジオメトリを返します。
構文
ST_GeometryFromText(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はvarchar型です。 |
戻り値のデータ型
ジオメトリタイプ。
例
複数のポリゴンを構築します。
クエリ文
* | SELECT ST_GeometryFromText('multipolygon(((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))')
クエリと分析結果
ST_LineFromText関数
ST_LineFromText関数は、指定したWKT表現から行文字列を返します。
構文
ST_LineFromText(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はvarchar型です。 |
戻り値のデータ型
linestring型。
例
行文字列を作成します。
クエリ文
* | SELECT ST_LineFromText('linestring (10 10,20 20) ')
クエリと分析結果
ST_Polygon関数
ST_Polygon関数は、指定したWKT表現からポリゴンを返します。
構文
ST_Polygon(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はvarchar型です。 |
戻り値のデータ型
ポリゴンタイプ。
例
ポリゴンを作成します。
クエリ文
* | SELECT ST_Polygon('polygon((10 10,10 20,20 20,20 15,10 10))')
クエリと分析結果
ST_Point関数
ST_Point関数は、指定したWKT表現からポイントを返します。
構文
ST_Point(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
y | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ポイントタイプ。
例
ポイントを作成します。
クエリ文
* | SELECT ST_Point(0,0)
クエリと分析結果
ST_Boundary関数
ST_Boundary関数は、ジオメトリの組み合わせ境界のクロージャを返します。
点の組み合わせ境界のクロージャは空である。 指定したジオメトリがポイントの場合、関数はpoint EMPTYを返します。
線列の組み合わせ境界の閉包は、線列の端点から構成される。
多角形の組み合わせ境界の閉包は、多角形の外部および内部リングを含む線列で構成される。
構文
ST_Boundary(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、geography型です。 |
戻り値のデータ型
地理タイプ。
例
ST_Polygon関数を使用してポリゴンを返します。 次に、ST_Boundary関数を使用して、ポリゴンの組み合わせ境界のクロージャを返します。
クエリ文
* | SELECT ST_Boundary(ST_Polygon('polygon((10 10,10 20,20 20,20 15,10 10))'))
クエリと分析結果
ST_Buffer関数
ST_Buffer関数は、指定されたジオメトリからの距離が指定された距離以下であるすべての点を表すジオメトリを返します。
構文
ST_Buffer(x, distance)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
距離 | 距離だ |
戻り値のデータ型
ジオメトリタイプ。
例
ST_Point関数を使用してポイントを返します。 次に、ST_Buffer関数を使用して、ポイントからの距離が指定された距離以下であるすべてのポイントを表すポリゴンを返します。
クエリ文
* | SELECT ST_Buffer(ST_Point(1,1),1)
クエリと分析結果
ST_Difference関数
ST_Difference関数は、指定した2つのジオメトリのポイントセットの差分を表すジオメトリを返します。
構文
ST_Difference(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
y | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ジオメトリタイプ。
例
ST_GeometryFromText関数を使用して、2つのジオメトリを返します。 次に、ST_Difference関数を使用して、2つのジオメトリのポイントセットの差を表すジオメトリを返します。
クエリ文
* | SELECT ST_Difference( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,0 15,0 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) ) AS "Difference"
クエリと分析結果
ST_Envelope関数
ST_Envelope関数は、ジオメトリの境界矩形ポリゴンを返します。
構文
ST_Envelope(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ジオメトリタイプ。
例
ST_GeometryFromText関数を使用してジオメトリを返します。 次に、ST_Envelope関数を使用して、ジオメトリの境界長方形ポリゴンを返します。
クエリ文
* | SELECT ST_Envelope( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
クエリと分析結果
ST_ExteriorRing関数
ST_ExteriorRing関数は、ジオメトリの外部リングを表す行文字列を返します。
構文
ST_ExteriorRing(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ジオメトリタイプ。
例
ST_GeometryFromText関数を使用してジオメトリを返します。 次に、ST_ExteriorRing関数を使用して、ジオメトリの外部リングを表す行文字列を返します。
クエリ文
* | SELECT ST_ExteriorRing( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
クエリと分析結果
ST_Intersection関数
ST_Intersection関数は、指定した2つのジオメトリのポイントセットの交点を表すジオメトリを返します。
構文
ST_Intersection(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
y | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ジオメトリタイプ。
例
ST_GeometryFromText関数を使用して、2つのジオメトリを返します。 次に、ST_Intersection関数を使用して、2つのジオメトリのポイントセットの交点を表すジオメトリを返します。
クエリ文
* | SELECT ST_Intersection( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) )
クエリと分析結果
ST_SymDifference関数
ST_SymDifference関数は、指定した2つのジオメトリの点集合対称差を表すジオメトリを返します。
構文
ST_SymDifference(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
y | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ジオメトリタイプ。
例
ST_GeometryFromText関数を使用して、2つのジオメトリを返します。 次に、ST_SymDifference関数を使用して、2つのジオメトリの点集合対称差を表すジオメトリを返します。
クエリ文
* | SELECT ST_SymDifference( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) )
クエリと分析結果
ST_Contains関数
ST_Contains関数は、第2のジオメトリの点が第1のジオメトリの外部に存在せず、第1のジオメトリの内部の少なくとも1つの点が第2のジオメトリの内部に存在するかどうかをチェックする。 はいの場合、関数はtrueを返します。
構文
ST_Contains(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
y | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ブール型。
例
ST_GeometryFromText関数を使用して、2つのジオメトリを返します。 次に、ST_Contains関数を使用して、第2のジオメトリの点が第1のジオメトリの外部になく、第1のジオメトリの内部の少なくとも1つの点が第2のジオメトリの内部にあるかどうかを確認します。
クエリ文
* | SELECT ST_Contains( ST_GeometryFromText( 'polygon((10 10,10 20,20 20,20 15,10 10))' ), ST_GeometryFromText( 'point(11 11)' ) )
クエリと分析結果
ST_Crosses関数
ST_Crosses関数は、指定した2つのジオメトリに複数の内部ポイントがあるかどうかを確認します。 はいの場合、関数はtrueを返します。
構文
ST_Crosses(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
y | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ブール型。
例
ST_GeometryFromText関数を使用して、2つのジオメトリを返します。 次に、ST_Crosses関数を使用して、2つのジオメトリに共通の複数の内部ポイントがあるかどうかを確認します。
クエリ文
* | SELECT ST_Crosses( ST_GeometryFromText( 'multipolygon (((10 10, 10 20, 20 20, 20 15 , 10 10), (50 40, 50 50, 60 50, 60 40, 50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10, 10 20, 20 20, 20 15 , 10 10), (50 40, 50 50, 60 50, 60 40, 50 50)))' ) )
クエリと分析結果
ST_Disjoint関数
ST_Disjoint関数は、指定された2つのジオメトリが2次元空間の一部を共有するかどうかを確認します。 そうでない場合、関数はtrueを返します。
構文
ST_Disjoint(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
y | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ブール型。
例
ST_GeometryFromText関数を使用して、2つのジオメトリを返します。 次に、ST_Disjoint関数を使用して、2つのジオメトリが2次元空間の一部を共有していないかどうかを確認します。
クエリ文
* | SELECT ST_Disjoint( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) )
クエリと分析結果
ST_Equals関数
ST_Equals関数は、指定した2つのジオメトリが同じジオメトリを表すかどうかを確認します。 はいの場合、関数はtrueを返します。
構文
ST_Equals(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
y | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ブール型。
例
ST_GeometryFromText関数を使用して、2つのジオメトリを返します。 次に、ST_Equals関数を使用して、2つのジオメトリが同じジオメトリを表すかどうかを確認します。
クエリ文
* | SELECT ST_Equals( ST_GeometryFromText( 'multipolygon(((10 10,10 20,20 20,20 15,10 10),(50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon(((10 10,10 20,20 20,20 15,10 10),(50 40,50 50,60 50,60 40,50 50)))' ) )
クエリと分析結果
ST_Intersects関数
ST_Intersects関数は、2つの指定されたジオメトリが2次元空間の一部を共有するかどうかをチェックします。 はいの場合、関数はtrueを返します。
構文
ST_Intersects(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
y | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ブール型。
例
ST_GeometryFromText関数を使用して、2つのジオメトリを返します。 次に、ST_Intersects関数を使用して、2つのジオメトリが2次元空間の一部を共有しているかどうかを確認します。
クエリ文
* | SELECT ST_Intersects( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) )
クエリと分析結果
ST_Overlaps関数
ST_Overlaps関数は、指定された2つのジオメトリがスペースを共有し、同じディメンションを持ちますが、互いに完全には含まれていないかどうかを確認します。 はいの場合、関数はtrueを返します。
構文
ST_Overlaps(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
y | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ブール型。
例
ST_GeometryFromText関数を使用して、2つのジオメトリを返します。 次に、ST_Overlaps関数を使用して、2つのジオメトリがスペースを共有し、同じ寸法を持つが、互いに完全には含まれていないかどうかを確認します。
クエリ文
* | SELECT ST_Overlaps( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) )
クエリと分析結果
ST_Relate関数
ST_Relate関数は、指定された2つのジオメトリに空間関係があるかどうかを確認します。 はいの場合、関数はtrueを返します。
構文
ST_Relate(x, y, patternMatrix string)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
y | このパラメーターの値はジオメトリ型です。 |
patternMatrix文字列 | DE-9IMパターン行列文字列。 このパラメーターの値はvarchar型です。 |
戻り値のデータ型
ブール型。
例
ST_GeometryFromText関数を使用して、2つのジオメトリを返します。 次に、ST_Relate関数を使用して、2つのジオメトリに空間関係があるかどうかを確認します。
クエリ文
* | SELECT ST_Relate( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ), '****T****' )
クエリと分析結果
ST_Touches関数
ST_Touches関数は、指定された2つのジオメトリに少なくとも1つの共通点があるが、内部が交差しないかどうかを確認します。 はいの場合、関数はtrueを返します。
構文
ST_Touches(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
y | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ブール型。
例
ST_GeometryFromText関数を使用して、2つのジオメトリを返します。 次に、ST_Touches関数を使用して、2つのジオメトリに少なくとも1つの共通点があるが、内部が交差しないかどうかを確認します。
クエリ文
* | SELECT ST_Touches( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) )
クエリと分析結果
ST_Within関数
ST_Within関数は、最初のジオメトリが完全に2番目のジオメトリの内側にあるかどうかを確認します。 はいの場合、関数はtrueを返します。
構文
ST_Within(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
y | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ブール型。
例
ST_GeometryFromText関数を使用して、2つのジオメトリを返します。 次に、ST_Within関数を使用して、最初のジオメトリが完全に2番目のジオメトリの内側にあるかどうかを確認します。
クエリ文
* | SELECT ST_Within( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) )
クエリと分析結果
ST_Area関数
ST_Area関数は、ユークリッド距離法を使用して、2次元平面上のジオメトリの投影面積を計算します。
構文
ST_Area(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ダブルタイプ。
例
ST_GeometryFromText関数を使用してジオメトリを返します。 次に、ST_Area関数を使用して、2次元平面上のジオメトリの投影面積を計算します。
クエリ文
* | SELECT ST_Area( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
クエリと分析結果
ST_Centroid関数
ST_Centroid関数は、ジオメトリの数学的重心を表すポイント値を返します。
構文
ST_Centroid(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ジオメトリタイプ。
例
ST_GeometryFromText関数を使用してジオメトリを返します。 次に、ST_Centroid関数を使用して、ジオメトリの数学的重心を表すポイント値を返します。
クエリ文
* | SELECT ST_Centroid( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
クエリと分析結果
ST_CoordDim関数
ST_CoordDim関数は、ジオメトリの座標次元を返します。
構文
ST_CoordDim(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
bigint型。
例
ST_GeometryFromText関数を使用してジオメトリを返します。 次に、ST_CoordDim関数を使用してジオメトリの座標寸法を返します。
クエリ文
* | SELECT ST_CoordDim( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
クエリと分析結果
ST_Dimension関数
ST_Dimension関数は、ジオメトリの固有の寸法を返します。 固有の寸法は、座標寸法以下でなければなりません。
構文
ST_Dimension(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。
|
戻り値のデータ型
bigint型。
例
ST_GeometryFromText関数を使用してジオメトリを返します。 次に、ST_Dimension関数を使用して、ジオメトリの固有の寸法を返します。
クエリ文
* | SELECT ST_Dimension( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
クエリと分析結果
ST_Distance関数
ST_Distance関数は、2つのジオメトリ間の最小距離を返します。
構文
ST_Distance(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
y | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ダブルタイプ。
例
ST_GeometryFromText関数を使用して2つのジオメトリを返します。次に、ST_Distance関数を使用して2つのジオメトリ間の最小距離を返します。
クエリ文
* | SELECT ST_Distance( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
クエリと分析結果
ST_EndPoint関数
ST_EndPoint関数は、行文字列の最後の点を返します。
構文
ST_EndPoint(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ポイントタイプ。
例
ST_LineFromText関数を使用して、行文字列を返します。 次に、ST_EndPoint関数を使用して、行文字列の最後の点を返します。
クエリ文
* | SELECT ST_EndPoint( ST_LineFromText( 'linestring (10 10,20 20)' ) )
クエリと分析結果
ST_IsClosed関数
ST_IsClosed関数は、行文字列の始点と終点が一致するかどうかをチェックします。 はいの場合、関数はtrueを返します。
構文
ST_IsClosed(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ブール型。
例
ST_LineFromText関数を使用して、行文字列を返します。 次に、ST_IsClosed関数を使用して、行文字列の始点と終点が一致するかどうかを確認します。
クエリ文
* | SELECT ST_IsClosed( ST_LineFromText( 'linestring (10.05 10.28 , 20.95 20.89 )' ) )
クエリと分析結果
ST_IsEmpty関数
ST_IsEmpty関数は、ジオメトリが空かどうかをチェックします。 はいの場合、関数はtrueを返します。
構文
ST_IsEmpty(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ブール型。
例
ST_Point関数を使用してポイントを返します。 次に、ST_IsEmpty関数を使用して、ポイントが空かどうかを確認します。
クエリ文
* | SELECT ST_IsEmpty(ST_Point(1,1))
クエリと分析結果
ST_IsRing関数
ST_IsRing関数は、行文字列が閉じて単純かどうかをチェックします。 はいの場合、関数はtrueを返します。
構文
ST_IsRing(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ブール型。
例
ST_LineFromText関数を使用して、行文字列を返します。 次に、ST_IsRing関数を使用して、行文字列が閉じて単純かどうかを確認します。
クエリ文
* | SELECT ST_IsRing( ST_LineFromText( 'linestring (10.05 10.28,20.95 20.89 )' ) )
クエリと分析結果
ST_Length関数
ST_Length関数は、ユークリッド距離法を用いて、二次元平面上の線列の投影長を算出する。 複数の行文字列が存在する場合、関数は複数の行文字列の長さの合計を返します。
構文
ST_Length(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ダブルタイプ。
例
ST_LineFromText関数を使用して、行文字列を返します。 次に、ST_Length関数を使用して、ライン文字列の投影長を計算します。
クエリ文
* | SELECT ST_Length( ST_LineFromText( 'linestring (10.05 10.28,20.95 20.89)' ) )
クエリと分析結果
ST_NumPoints関数
ST_NumPoints関数は、ジオメトリ内の点の数を返します。
構文
ST_NumPoints(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
bigint型。
例
ST_LineFromText関数を使用して、行文字列を返します。 次に、ST_NumPoints関数を使用して、行文字列のポイント数を返します。
クエリ文
* | SELECT ST_NumPoints( ST_LineFromText('linestring (10 10,20 20)') )
クエリと分析結果
ST_NumInteriorRing関数
ST_NumInteriorRing関数は、ジオメトリ内の内部リングの数を返します。
構文
ST_NumInteriorRing(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
bigint型。
例
ST_GeometryFromText関数を使用してジオメトリを返します。 次に、ST_NumInteriorRing関数を使用して、ジオメトリ内の内部リングの数を返します。
クエリ文
* | SELECT ST_NumInteriorRing( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
クエリと分析結果
ST_StartPoint関数
ST_StartPoint関数は、行文字列の最初の点を返します。
構文
ST_StartPoint(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ポイントタイプ。
例
ST_LineFromText関数を使用して、行文字列を返します。 次に、ST_StartPoint関数を使用して、行文字列の最初の点を返します。
クエリ文
* | SELECT ST_StartPoint( ST_LineFromText( 'linestring (10 10,20 20 )' ) )
クエリと分析結果
ST_X関数
ST_X関数は、指定された点のX座標を返します。
構文
ST_X(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はポイント型です。 |
戻り値のデータ型
ダブルタイプ。
例
ST_Point関数を使用してポイントを返します。 次に、ST_X関数を使用して、ポイントのX座標を返します。
クエリ文
* | SELECT ST_X(ST_Point(1,3))
クエリと分析結果
ST_XMax関数
ST_XMax関数は、ジオメトリの最大の最初のX座標を返します。
構文
ST_XMax(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ダブルタイプ。
例
ST_GeometryFromText関数を使用してジオメトリを返します。 次に、ST_XMax関数を使用して、ジオメトリの最大の最初のX座標を返します。
クエリ文
* | SELECT ST_XMax( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
クエリと分析結果
ST_XMin関数
ST_XMin関数は、ジオメトリの最小の最初のX座標を返します。
構文
ST_XMin(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ダブルタイプ。
例
ST_GeometryFromText関数を使用してジオメトリを返します。 次に、ST_XMin関数を使用して、ジオメトリの最小の最初のX座標を返します。
クエリ文
* | SELECT ST_XMin( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
クエリと分析結果
ST_Y関数
ST_Y関数は、指定された点のY座標を返します。
構文
ST_Y(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はポイント型です。 |
戻り値のデータ型
ダブルタイプ。
例
ST_Point関数を使用してポイントを返します。 次に、ST_Y関数を使用して、ポイントのY座標を返します。
クエリ文
* | SELECT ST_Y(ST_Point(1,3))
クエリと分析結果
ST_YMax関数
ST_YMax関数は、ジオメトリの最大の最初のY座標を返します。
構文
ST_YMax(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ダブルタイプ。
例
ST_GeometryFromText関数を使用してジオメトリを返します。 次に、ST_YMax関数を使用して、ジオメトリの最大の最初のY座標を返します。
クエリ文
* | SELECT ST_YMax( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
クエリと分析結果
ST_YMin関数
ST_YMin関数は、ジオメトリの最小の最初のY座標を返します。
構文
ST_YMin(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はジオメトリ型です。 |
戻り値のデータ型
ダブルタイプ。
例
ST_GeometryFromText関数を使用してジオメトリを返します。 次に、ST_YMin関数を使用して、ジオメトリの最小の最初のY座標を返します。
クエリ文
* | SELECT ST_YMin( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
クエリと分析結果
bing_tile関数
bing_tile関数はBingタイルを返します。
構文
次の関数は、X座標、Y座標、およびズームレベルに基づいてBingタイルを返します。
bing_tile(x, y, zoom_level)
次の関数は、4分木キーに基づいてBingタイルを返します。
bing_tile(quadKey)
パラメーター
パラメーター | 説明 |
x | X座標。 このパラメーターの値は整数型です。 |
y | Y座標。 このパラメーターの値は整数型です。 |
zoom_level | ズームレベル。 有効な値: [1,23] 。 このパラメーターの値は整数型です。 |
quadKey | 4分木キー。 |
戻り値のデータ型
BingTileタイプ。
例
例1: X座標、Y座標、およびズームレベルに基づいてBingタイルを作成します。
クエリ文
* | SELECT bing_tile(10、20、20)
クエリと分析結果
例2: 4分木キーに基づいてBingタイルを作成します。
クエリ文
* | SELECT bing_tile(bing_tile_quadkey(bing_tile(10, 20, 20)))
クエリと分析結果
bing_tile_at関数
bing_tile_at関数は、緯度、経度、およびズームレベルに基づいてBingタイルを返します。
構文
bing_tile_at(x, y, zoom_level)
パラメーター
パラメーター | 説明 |
x | 緯度。 有効な値: [-85.05112878,85.05112878] 。 このパラメーターの値はdouble型です。 |
y | 経度。 有効な値: [-180,180] 。 このパラメーターの値はdouble型です。 |
zoom_level | ズームレベル。 有効な値: [1,23] 。 このパラメーターの値は整数型です。 |
戻り値のデータ型
BingTileタイプ。
例
Bingタイルを作成します。
クエリ文
* | SELECT bing_tile_at(47.265511、-122.465691、12)
クエリと分析結果
bing_tile_coordinates関数
bing_tile_coordinates関数は、BingタイルのX座標とY座標を返します。
構文
bing_tile_coordinates(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はBingTile型です。 |
戻り値のデータ型
配列 (integer,integer) 型。
例
BingタイルのX座標とY座標を取得します。
クエリ文
* | SELECT bing_tile_coordinates(bing_tile_at(47.265511、-122.465691、12))
クエリと分析結果
bing_tile_polygon関数
bing_tile_polygon関数は、Bingタイルのポリゴン表現を返します。
構文
bing_tile_polygon(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はBingTile型です。 |
戻り値のデータ型
ポリゴンタイプ。
例
Bingタイルのポリゴン表現を取得します。
クエリ文
* | SELECT bing_tile_polygon(bing_tile_at(30.26, 120.19, 12))
クエリと分析結果
bing_tile_quadkey関数
bing_tile_quadkey関数は、Bingタイルの4分木キーを返します。
構文
bing_tile_quadkey(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はBingTile型です。 |
戻り値のデータ型
varcharタイプ。
例
Bingタイルの4分木キーを取得します。
クエリ文
* | SELECT bing_tile_quadkey(bing_tile(10, 20, 20))
クエリと分析結果
bing_tile_zoom_level関数
bing_tile_zoom_level関数は、Bingタイルのズームレベルを返します。
構文
bing_tile_zoom_level(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はBingTile型です。 |
戻り値のデータ型
ダブルタイプ。
例
Bingタイルのズームレベルを取得します。
クエリ文
* | SELECT bing_tile_zoom_level(bing_tile (10, 20, 20))
クエリと分析結果