空間関数¶
空間関数:
ST_AREA_METERS¶
説明
ST_AREA
関数は、wkb/wkt の area_meters を返します。この関数は、wkb の面積を返します。結果の単位は平方メートルです。コードではジオメトリの CRS を指定します。
例
SELECT st_area_meters(wkb, code)/st_area_meters(wkt, code) FROM view
ST_BOUNDARY¶
説明
ST_BOUNDARY
関数は、wkb/wkt の結合された境界を表現する新しいジオメトリを返します。
例
SELECT st_boundary(wkb)/st_boundary(wkt) FROM view
ST_BUFFER¶
説明
ST_BUFFER
関数は、入力ジオメトリから指定した距離内にある点をすべて含む新しいジオメトリを返します。この関数は、すべての空間データ型をサポートします。
SELECT st_buffer(wkb, <distance:double>)/st_buffer(wkt, <distance:double>) FROM view
例
SELECT st_buffer('POINT(0 0)', 1.0) FROM view
この関数は、入力ジオメトリから指定した距離内にある点を含む新しいジオメトリを返します。
ST_BUFFER_METERS¶
説明
ST_BUFFER_METERS
関数は、入力ジオメトリから指定した距離内にある点をすべて含む新しいジオメトリを返します。コードではジオメトリの CRS を指定します。距離の単位はメートルです。
ジオメトリの CRS の距離の標準単位がメートルとは異なる場合、ジオメトリは UTM ゾーンに投影されます。このゾーンはジオメトリの重心の座標によって決定されます。新しいバッファジオメトリが新しい UTM 投影内で計算されます。その単位はメートルです。最後に、このジオメトリがソースの CRS に再投影されます。入力 CRS の単位がすでにメートルである場合、バッファジオメトリは変換なしに計算されます。
距離パラメータが大きすぎて、バッファジオメトリが計算に使用する UTM ゾーンの制限を超える場合、精度が失われる可能性があります。この関数は、すべての空間データ型をサポートします。
SELECT ST_BUFFER_METERS(wkt, code, <distance:double>) FROM view
コードは、管理者情報とコロン (:) で始める必要があります。
例
SELECT ST_BUFFER_METERS('POINT(43.37 -8.41)','EPSG:4326',1000) FROM view
この関数は、BLOB を入力として受け取ることもできます。BLOB では、ジオメトリを既知のバイナリ (wkb) 形式で表現する必要があります。
ST_CENTROID¶
説明
ST_CENTROID
関数は、wkb/wkt の幾何学的中心を返します。この関数は、すべての空間データ型をサポートします。
例
SELECT st_centroid(wkb)/st_centroid(wkt) FROM view
ST_CONTAINS¶
説明
ST_CONTAINS
関数は、ジオメトリ wkb2 がジオメトリ wkb1 に完全に含まれる場合に true を返します。この関数は、すべての空間データ型をサポートします。
例
SELECT st_contains(wkb1, wkb2)/st_contains(wkt1, wkt2) FROM view
ジオメトリ wkb2 がジオメトリ wkb1 に完全に含まれる場合、true (t) を返します。
ST_CONVEXHULL¶
説明
ST_CONVEXHULL
関数は、ジオメトリ内のすべての点を含む最小の凸ポリゴンを計算します。この関数は、すべての空間データ型をサポートします。
例
SELECT st_convexhull(wkb)/st_convexhull(wkt) FROM view
ST_CREATE_POINT¶
説明
ST_CREATE_POINT
関数は、点を作成します。パラメータは abscissa(x) と ordinate(y) であり、2 次元の長方形空間内での点の位置を定義します。
SELECT st_create_point(<x:DOUBLE>, <y:DOUBLE>) FROM view
ST_CROSSES¶
説明
ST_CROSSES
関数は、指定した複数のジオメトリに共通の内点がいくつかあるものの、すべてではない場合に true を返します。この関数は、すべての空間データ型をサポートします。
例
SELECT st_crosses(wkb1, wkb2)/st_crosses(wkt1, wkt2) FROM view
ジオメトリに共通の内点が複数ある場合、結果は true (t) になります。
ST_DIFFERENCE¶
説明
ST_DIFFERENCE
関数は、wkb1/wkt1 の、wkb2/wkt2 と交差しない部分である新しいジオメトリを返します。この関数は、すべての空間データ型をサポートします。
例
SELECT st_difference(wkb1, wkb2)/st_difference(wkt1, wkt2) FROM view
ST_DIMENSION¶
説明
ST_DIMENSION
関数は、wkb の次元を返します。
例
SELECT st_dimension(wkb1, wkb2)/st_dimension(wkt1, wkt2) FROM view
ST_DISJOINT¶
説明
ST_DISJOINT
関数は、指定した複数のジオメトリに共通の点がない場合に true を返します。この関数は、すべての空間データ型をサポートします。
例
SELECT st_disjoint(wkb1, wkb2)/st_disjoint(wkt1, wkt2) FROM view
指定したジオメトリに共通の内点がない場合、結果は true (t) になります。共通の内点がある場合、結果は false (f) になります。
ST_DISTANCE¶
説明
ST_DISTANCE
関数は、ジオメトリ wkb1/wkt1 とジオメトリ wkb2/wkt2 間の最小距離を返します。
例
SELECT st_distance(wkb1, wkb2)/st_distance(wkt1, wkt2) FROM view
ST_DISTANCE_METERS¶
説明
ST_DISTANCE_METERS
関数は、ジオメトリ wkb1/wkt1 とジオメトリ wkb2/wkt2 間の、メートルで表した最小距離を返します。コードでは各ジオメトリの CRS を指定します。入力の CRS が WGS84 と異なる場合、入力は WGS84 に投影されます。2 つのジオメトリが WGS84 である場合は、2 つのジオメトリ間の大円距離が計算されます。
例
SELECT st_distance_meters(wkb1, code1, wkb2, code2)/st_distance_meters(wkt1, code1, wkt2, code2) FROM view
ST_ENDPOINT¶
説明
ST_ENDPOINT
関数は、wkb/wkt の終点を返します。Wkb/wkt はラインストリングである必要があります。
SELECT st_endpoint(wkb)/st_endpoint(wkt) FROM view
例
ST_ENDPOINT('LINESTRING(0 2, 4 5, 7 8)')
結果は以下のようになります。
'POINT (7 8)'
ST_ENVELOPE¶
説明
ST_ENVELOPE
関数は、wkb/wkt のエンベロープ (境界ボックス) を表現する新しいジオメトリを返します。
例
SELECT st_envelope(wkb)/st_envelope(wkt) FROM view
ST_EQUALS¶
説明
ST_EQUALS
関数は、指定したジオメトリが同じジオメトリを表現する場合に true を返します。方向性は無視されます。この関数は、すべての空間データ型をサポートします。
例
SELECT st_equals(wkb, wkb)/st_equals(wkt, wkt) FROM view
ST_EXTERIORRING¶
説明
ST_EXTERIORRING
関数は、wkb/wkt の外環を表現する新しいジオメトリを返します。Wkb/wkt はポリゴンである必要があります。
例
SELECT st_exteriorring(wkb)/st_exteriorring(wkt) FROM view
ST_GEOMETRYTYPE¶
説明
ST_GEOMETRYTYPE
関数は、wkb/wkt のタイプを返します。
SELECT st_geometrytype(wkb)/st_geometrytype(wkt) FROM view
ST_GEOM_TO_STRUCT¶
この関数には 2 つのシグネチャがあります。
st_geom_to_struct(wkb)
: ジオメトリを表現する BLOB 値を解析し、レジスターと配列に換算したジオメトリの構造的表現に変換します。st_geom_to_struct(wkt)
: ジオメトリを表現する テキスト 値を解析し、レジスターと配列に換算したジオメトリの構造的表現に変換します。
ジオメトリの構造的表現は、次のフィールドが含まれる VDP レジスター (構造体) になります。
type: ジオメトリのタイプ (点、ラインストリング、ポリゴン...)。
bounding_box: ジオメトリを包含する最小の長方形の座標が含まれるレジスター。
point: type フィールドでジオメトリが点であると指定されている場合、点の座標 x と y が含まれるレジスター。
linestring: type フィールドでジオメトリがラインストリングであると指定されている場合、そのラインストリングを形成する点が含まれる配列。
polygon: type フィールドでジオメトリがポリゴンであると指定されている場合、外部のラインストリング (シェル) として定義されているレジスターと、ポリゴン内の穴 (ラインストリング) が含まれる配列。
multipoint: type フィールドでジオメトリがマルチポイントであると指定されている場合、そのすべての点が含まれる配列。
multilinestring: type フィールドでジオメトリがマルチラインストリングであると指定されている場合、そのすべてのラインストリングが含まれる配列。
multipolygon: type フィールドでジオメトリがマルチポリゴンであると指定されている場合、そのすべてのポリゴンが含まれる配列。
この関数は、文字列を入力として受け取ることができます。文字列では、ジオメトリを馴染みのあるテキスト (wkt) 形式で表す必要があります。
例
たとえば、入力が「LINESTRING(1 1, 5 5, 10 10, 20 20)」である場合、この関数を使用するための式は次のようにする必要があります。
st_geom_to_struct(input)
結果は以下のようになります。
{ type = 'LineString',
bounding_box = {
max_x = 20.0,
max_y = 20.0,
min_x = 1.0,
min_y = 1.0 },
point = null,
linestring = Array [
{ x = 1.0, y = 1.0 },
{ x = 5.0, y = 5.0 },
{ x = 10.0, y = 10.0 },
{ x = 20.0, y = 20.0 } ],
polygon = null,
multipoint = null,
multilinestring = null,
multipolygon = null }
この関数は、BLOB を入力として受け取ることもできます。BLOB では、ジオメトリを既知のバイナリ (wkb) 形式で表現する必要があります。
ST_GEOMETRYN¶
説明
ST_GEOMETRYN
関数は、N 番目のジオメトリを返します。N は位置パラメータで指定します。
SELECT st_geometryn(wkb, <position:INTEGER>)/st_geometryn(wkt, <position:INTEGER>) FROM view
ST_INTERIORRINGN¶
説明
ST_INTERIORRINGN
関数は、wkb/wkt の N 番目の内環を返します。N は位置パラメータで指定します。Wkb/wkt はポリゴンである必要があります。ジオメトリがポリゴンではない場合、または指定した位置が範囲外である場合、null を返します。
例
SELECT st_interiorringn(wkb, <position:INTEGER>)/st_interiorringn(wkt, <position:INTEGER>) FROM view
ST_INTERSECTION¶
説明
ST_INTERSECTION
関数は、wkt1 と wkt2 の共有部分によって形成される新しいジオメトリを返します。この関数は、すべての空間データ型をサポートします。
例
SELECT st_intersection(wkb1, wkb2)/st_intersection(wkt1, wkt2) FROM view
ST_INTERSECTS¶
説明
ST_INTERSECTS
関数は、指定したジオメトリの交差が空のセットにならない場合に true を返します。
例
SELECT st_intersects(wkb1, wkb2)/st_intersects(wkt1, wkt2) FROM view
ジオメトリが交差する場合、結果は true (t) になります。交差しない場合、結果は false (f) になります。
ST_ISCLOSED¶
説明
ST_ISCLOSED
関数は、開始点と終了点が一致する場合に true を返します。Wkb/wkt はラインストリングまたはマルチラインストリングである必要があります。
例
SELECT st_isclosed(wkb)/st_isclosed(wkt) FROM view
開始点と終了点が一致する場合、結果は true (t) になります。
ST_ISEMPTY¶
説明
ST_ISEMPTY
関数は、wkb が空のジオメトリである場合に true を返します。
例
SELECT st_isempty(wkb)/st_isempty(wkt) FROM view
指定したジオメトリが空である場合、結果は true (t) になります。
ST_ISSIMPLE¶
説明
ST_ISSIMPLE
関数は、wkb/wkt に自己交差や自己接触などの異常な幾何学的点がない場合に true を返します。
例
SELECT st_issimple(wkb)/st_issimple(wkt) FROM view
指定したジオメトリに異常な幾何学的点がない場合、結果は true (t) になります。
ST_ISRING¶
説明
ST_ISRING
関数は、wkb/wkt が閉じていて単純である場合に true を返します。Wkb/wkt はラインストリングである必要があります。
例
SELECT st_isring(wkb)/st_isring(wkt) FROM view
指定したジオメトリが閉じていて単純である場合、結果は true (t) になります。
ST_LENGTH¶
説明
ST_LENGTH
関数は、wkb/wkt の長さを返します。Wkb/wkt はラインストリングまたはマルチラインストリングである必要があります。
例
SELECT st_length(wkb)/st_length(wkt) FROM view
ST_LENGTH_METERS¶
説明
ST_LENGTH_METERS
関数は、wkb/wkt の長さを返します。結果の単位はメートルです。Wkb はラインストリングまたはマルチラインストリングである必要があります。コードではジオメトリの CRS を指定します。
例
SELECT st_length_meters(wkb, <code:string>)/st_length_meters(wkt, <code:string>) FROM view
ST_NUMGEOMETRIES¶
説明
ST_NUMGEOMETRIES
関数は、ジオメトリの数を返します。
例
SELECT st_numgeometries(wkb)/st_numgeometries(wkt) FROM view
指定したジオメトリが単純なジオメトリである場合、1 が返されます。指定したジオメトリが GEOMETRYCOLLECTION または MULTI サブタイプである場合、ジオメトリの数が返されます。
ST_NUMINTERIORRINGS¶
説明
ST_NUMINTERIORRINGS
関数は、wkb/wkt の内環の数を返します。Wkb/wkt はポリゴンである必要があります。
例
SELECT st_numinteriorrings(wkb)/st_numinteriorrings(wkt) FROM view
ST_NUMPOINTS¶
説明
ST_NUMPOINTS
関数は、wkb/wkt の点の数を返します。Wkb/wkt はラインストリングである必要があります。
例
SELECT st_numpoints(wkb)/st_numpoints(wkt) FROM view
ST_OVERLAPS¶
説明
ST_OVERLAPS
関数は、指定した複数のジオメトリが空間を共有していて同じ次元であっても、お互いに完全には含まれていない場合に true を返します。
例
SELECT st_overlaps(wkb1, wkb2)/st_overlaps(wkt1, wkt2) FROM view
指定したジオメトリがお互いに重なり合っている場合、結果は true (t) になります。
ST_POINTN¶
説明
ST_POINTN
関数は、wkb/wkt の N 番目の点を返します。N は位置パラメータで指定します。Wkb/wkt はラインストリングである必要があります。
例
SELECT st_pointn(wkb, <position:integer>)/st_pointn(wkt, <position:integer>) FROM view
ST_RELATE¶
説明
ST_RELATE
関数は、1 つ目のジオメトリが 2 つ目のジオメトリと空間的に関係している場合に true を返します。そのために、matrixPattern の値で指定した wkb1 と wkb2 の内部、境界、および外部の間に交差がないかどうかをテストします。matrixPattern は、次元拡張 9 交差モデル (DE-9IM) のマトリクスを表す 9 文字の文字列です。各文字で、2 つのジオメトリ間の 9 個の交差の 1 つで許可される交差のタイプ (内部、境界、および外部) を表現します。この関数は、すべての空間データ型をサポートします。
st_relate(wkb1, wkb2, matrixPattern)/st_relate(wkt1, wkt2, matrixPattern)
例
SELECT ST_RELATE('POINT(3 3)', ST_BUFFER('POINT(0 0)',3),'FF0FFF212') FROM view
結果は以下のようになります。
true
ST_RELATE
関数は、wkb1 と wkb2 を関係させる最大交差マトリクスパターンを返します。マトリクスパターンは、次元拡張 9 交差モデル (DE-9IM) のマトリクスを表現する 9 文字の文字列です。各文字で、2 つのジオメトリ間の 9 個の交差の 1 つで許可される交差のタイプ (内部、境界、および外部) を表現します。この関数は、すべての空間データ型をサポートします。
st_relate(wkb1, wkb2)/st_relate(wkt1, wkt2)
例
SELECT ST_RELATE('POINT(3 3)', ST_BUFFER('POINT(0 0)',3)) FROM view
結果は以下のようになります。
'FF0FFF212'
ST_STARTPOINT¶
説明
ST_STARTPOINT
関数は、wkb の最初の点を返します。Wkb はラインストリングである必要があります。
SELECT st_startpoint(wkb)/st_startpoint(wkt) FROM view
例
ST_STARTPOINT('LINESTRING(0 2, 4 5, 7 8)')
結果は以下のようになります。
'POINT (0 2)'
ST_SYMDIFFERENCE¶
説明
ST_SYMDIFFERENCE
関数は、wkb1/wkt1 と wkb2/wkt2 の、交差しない部分である新しいジオメトリを返します。この関数は、すべての空間データ型をサポートします。
SELECT st_symdifference(wkb1, wkb2)/st_symdifference(wkt1, wkt2) FROM view
ST_TOUCHES¶
説明
ST_TOUCHES
関数は、指定した複数のジオメトリの交差に共通の点が少なくとも 1 つあるものの、その内部には共通の点がまったくない場合に true を返します。この関数は、異なる空間データ型の間で考えられる関係すべてに適用されます。ただし、点と点のペアは除きます。
例
SELECT st_touches(wkb1, wkb2)/st_touches(wkt1, wkt2) FROM view
指定した複数のジオメトリに共通の点が少なくとも 1 つあるものの、その内部には共通の点がまったくない場合、結果は true (t) になります。
ST_TRANSFORM¶
説明
ST_TRANSFORM
関数は、ある座標参照系 (CRS) から別の座標参照系にジオメトリを変換します。source_code で入力ジオメトリの座標参照系 (CRS) を指定し、target_code で結果に求める CRS を指定します。
例
SELECT st_transform(wkb, <source_code:string>, <target_code:string>)/st_transform(wkt, <source_code:string>, <target_code:string>) FROM view
ST_UNION¶
説明
ST_UNION
関数は、wkt1 と wkt2 の和集合によって形成される新しいジオメトリを返します。この関数は、すべての空間データ型をサポートします。
例
SELECT st_union(wkb1, wkb2)/st_union(wkt1, wkt2) FROM view
ST_WITHIN¶
説明
ST_WITHIN
関数は、ジオメトリ wkb1 が完全にジオメトリ wkb2 の内部にある場合に true を返します。この関数は、すべての空間データ型をサポートします。
例
SELECT st_within(wkb1, wkb2)/st_within(wkt1, wkt2) FROM view
ST_WKBTOWKT¶
説明
ST_WKBTOWKT
関数は、既知のバイナリ (wkb) を馴染みのあるテキスト (wkt) に変換します。
例
SELECT st_wkbtowkt(wkb) FROM view
ST_WKTTOWKB¶
説明
ST_WKBTOWKT
関数は、馴染みのあるテキスト (wkt) を既知のバイナリ (wkb) に変換します。
例
SELECT st_wkttowkb(wkt) FROM view