この Topic では、GeomGrid SQL でサポートされているオペレーターについて、その構文、パラメーター、および例を含めて説明します。
サポートされているオペレーター
オペレーター | 説明 |
@> | グリッドオブジェクトの空間範囲にジオメトリオブジェクトが含まれているかどうかをクエリします。 |
<@ | グリッドオブジェクトの空間範囲がジオメトリオブジェクトに含まれているかどうかをクエリします。 |
&&& | 地理グリッドオブジェクトの空間範囲がジオメトリオブジェクトと交差するかどうかをクエリします。 |
@@> | 地理グリッドオブジェクトの空間範囲にジオメトリオブジェクトが含まれているかどうかをクエリします。 |
<@@ | 地理グリッドオブジェクトの空間範囲がジオメトリオブジェクトに含まれているかどうかをクエリします。 |
&& | 2 つの GeomGrid/Geometry オブジェクトまたは 2 つの H3Grid/Geometry オブジェクトのバウンディングボックス間の空間的な交差をチェックします。 |
~ | 2 つの GeomGrid/Geometry オブジェクトまたは 2 つの H3Grid/Geometry オブジェクトのバウンディングボックス間の空間的な包含関係をチェックします。 |
@ | 2 つの GeomGrid/Geometry オブジェクトまたは 2 つの H3Grid/Geometry オブジェクトのバウンディングボックス間の空間的な包含関係をチェックします。 |
各オペレーターの構文、パラメーター、および例は次のとおりです。
@>
グリッドオブジェクトの空間範囲にジオメトリオブジェクトが含まれているかどうかをクエリします。
構文
boolean @>(geomgrid grid, geometry geom);
boolean @>(geometry geom, geomgrid grid);
boolean @>(geomgrid grid1, geomgrid grid2);パラメーター
パラメーター | 説明 |
grid | グリッドオブジェクト。 |
geom | ジオメトリオブジェクト。 |
注意
ジオメトリオブジェクトは、CGC2000 空間参照系 (SRID=4490) を使用する必要があります。
例
例 1:
SELECT ST_gridfromtext('G001331032213300013') @> ST_geomfromtext('POINT(116.31522216796875 39.910277777777778)',4490) AS t;戻り値:
t --------------- f例 2:
SELECT ST_gridfromtext('G00133103221330') @> ST_gridfromtext('G001331032213300013') AS t;戻り値:
t ------------- t
<@
グリッドオブジェクトの空間範囲がジオメトリオブジェクトに含まれているかどうかをクエリします。
構文
boolean <@(geomgrid grid, geometry geom);
boolean <@(geometry geom, geomgrid grid);
boolean <@(geomgrid grid1, geomgrid grid2);パラメーター
パラメーター | 説明 |
grid | グリッドオブジェクト。 |
geom | ジオメトリオブジェクト。 |
注意
ジオメトリオブジェクトは、CGC2000 空間参照系 (SRID=4490) を使用する必要があります。
例
例 1:
SELECT ST_geomfromtext('POINT(116.31522216796875 39.910277777777778)',4490) <@ ST_gridfromtext('G001331032213300013') AS t;戻り値:
t --------------- f例 2:
SELECT ST_gridfromtext('G001331032213300013') <@ ST_gridfromtext('G001331032213300') AS t;戻り値:
t ------------- t
&&&
地理グリッドオブジェクトの空間範囲がジオメトリオブジェクトと交差するかどうかをクエリします。
構文
bool &&&(geometry geom3d, geomgrid gridcode);
bool &&&(geomgrid gridcode, geometry geom3d);
bool &&&(meshgeom geom3d, geomgrid gridcode);
bool &&&(geomgrid gridcode, meshgeom geom3d);
bool &&&(sfmesh geom3d, geomgrid gridcode);
bool &&&(geomgrid gridcode, sfmesh geom3d);
bool &&&(vomesh geom3d, geomgrid gridcode);
bool &&&(geomgrid gridcode, vomesh geom3d);
bool &&&(geomgrid gridcode1, geomgrid gridcode2);パラメーター
パラメーター | 説明 |
gridcode/gridcode1/gridcode2 | 地理グリッドオブジェクト。 |
geom3d | 3D ジオメトリオブジェクト。 |
注意
ジオメトリオブジェクトは、CGC2000 空間参照系 (SRID=4490) を使用する必要があります。
例
例 1:
SELECT ST_GridFromText('GZ00262064446046072072') &&& 'srid=4490;POINT(116.31522216796875 39.910277777777778 1001.8)'::geometry;戻り値:
st_3dintersects ----------------- f例 2:
SELECT ST_GridFromText('GZ00262064') &&& ST_GridFromText('GZ00262063');戻り値:
st_3dintersects ----------------- t
@@>
地理グリッドオブジェクトの空間範囲にジオメトリオブジェクトが含まれているかどうかをクエリします。
構文
bool @@>(geometry geom3d, geomgrid gridcode);
bool @@>(geomgrid gridcode, geometry geom3d);
bool @@>(meshgeom geom3d, geomgrid gridcode);
bool @@>(geomgrid gridcode, meshgeom geom3d);
bool @@>(sfmesh geom3d, geomgrid gridcode);
bool @@>(geomgrid gridcode, sfmesh geom3d);
bool @@>(vomesh geom3d, geomgrid gridcode);
bool @@>(geomgrid gridcode, vomesh geom3d);
bool @@>(geomgrid gridcode1, geomgrid gridcode2);パラメーター
パラメーター | 説明 |
gridcode/gridcode1/gridcode2 | 地理グリッドオブジェクト。 |
geom3d | 3D ジオメトリオブジェクト。 |
注意
ジオメトリオブジェクトは、CGC2000 空間参照系 (SRID=4490) を使用する必要があります。
例
例 1:
SELECT ST_GridFromText('GZ00262064446046072072') @@> 'srid=4490;POINT(116.31522216796875 39.910277777777778 1001.8)'::geometry;戻り値:
st_3dcontains ----------------- t例 2:
SELECT ST_GridFromText('GZ00262064') @@> ST_GridFromText('GZ002620643');戻り値:
st_3dcontains ----------------- t
<@@
地理グリッドオブジェクトの空間範囲がジオメトリオブジェクトに含まれているかどうかをクエリします。
構文
bool <@@(geometry geom3d, geomgrid gridcode);
bool <@@(geomgrid gridcode, geometry geom3d);
bool <@@(meshgeom geom3d, geomgrid gridcode);
bool <@@(geomgrid gridcode, meshgeom geom3d);
bool <@@(sfmesh geom3d, geomgrid gridcode);
bool <@@(geomgrid gridcode, sfmesh geom3d);
bool <@@(vomesh geom3d, geomgrid gridcode);
bool <@@(geomgrid gridcode, vomesh geom3d);
bool <@@(geomgrid gridcode1, geomgrid gridcode2);パラメーター
パラメーター | 説明 |
gridcode/gridcode1/gridcode2 | 地理グリッドオブジェクト。 |
geom3d | 3D ジオメトリオブジェクト。 |
注意
ジオメトリオブジェクトは、CGC2000 空間参照系 (SRID=4490) を使用する必要があります。
例
SELECT ST_GridFromText('GZ0026206435') <@@ ST_GridFromText('GZ002620643');戻り値:
st_3dwithin
-----------------
t&&
2 つの GeomGrid/Geometry オブジェクトまたは 2 つの H3Grid/Geometry オブジェクトのバウンディングボックス間の空間的な交差をチェックします。 GeomGrid または H3Grid オブジェクトは、バウンディングボックスの関係がチェックされる前に Geometry オブジェクトに変換されます。
構文
bool &&(GeomGrid A, GeomGrid B);
bool &&(GeomGrid A, Geometry B);
bool &&(Geometry A, GeomGrid B);
bool &&(H3Grid A, H3Grid B);
bool &&(H3Grid A, Geometry B);
bool &&(Geometry A, H3Grid B);戻り値
バウンディングボックスが交差する場合は true を返します。 それ以外の場合は、false を返します。
パラメーター
パラメーター | 説明 |
A | GeomGrid、H3Grid、または Geometry オブジェクト。 |
B | GeomGrid、H3Grid、または Geometry オブジェクト。 |
説明
2 つの GeomGrid/Geometry オブジェクトまたは 2 つの H3Grid/Geometry オブジェクトのバウンディングボックス間の空間的な交差をチェックします。 このオペレーターは、それらが交差する場合は true を返し、それ以外の場合は false を返します。
GeomGrid または H3Grid オブジェクトは、バウンディングボックスの関係がチェックされる前に Geometry オブジェクトに変換されます。
デフォルトでは、GeomGrid オブジェクトは CGC2000 座標系 (SRID=4490) を使用する Geometry オブジェクトに変換されます。
デフォルトでは、H3Grid オブジェクトは WGS 84 座標系 (SRID=4326) を使用する Geometry オブジェクトに変換されます。
例
例 1:
--&& (GeomGrid、GeomGrid) SELECT COUNT(*) from geomgrid_gist_test WHERE 'G00'::GeomGrid && code;戻り値:
------- 5例 2:
--&& (GeomGrid、Geometry) SELECT COUNT(*) from geomgrid_gist_test WHERE code && 'SRID=4490;POLYGON((80 20,90 20,90 25,80 25,80 20))'::Geometry;戻り値:
------- 5例 3:
--&& (H3Grid、H3Grid) SELECT COUNT(*) from h3grid_gist_test where code && ST_H3FromLatLng(-17.5, -65.0, 1);戻り値:
------- 1例 4:
--&& (Geometry、H3Grid) SELECT COUNT(*) from h3grid_gist_test WHERE 'SRID=4490;POLYGON((-70 -20,-60 -20,-60 -10,-70 -10,-70 -20))'::Geometry && code;戻り値:
------- 1
~
2 つの GeomGrid/Geometry オブジェクトまたは 2 つの H3Grid/Geometry オブジェクトのバウンディングボックス間の空間的な包含関係をチェックします。 GeomGrid または H3Grid オブジェクトは、バウンディングボックスの関係がチェックされる前に Geometry オブジェクトに変換されます。
構文
bool ~(GeomGrid A, GeomGrid B);
bool ~(GeomGrid A, Geometry B);
bool ~(Geometry A, GeomGrid B);
bool ~(H3Grid A, H3Grid B);
bool ~(H3Grid A, Geometry B);
bool ~(Geometry A, H3Grid B);戻り値
オブジェクト A のバウンディングボックスがオブジェクト B のバウンディングボックスを含む場合は true を返します。 それ以外の場合は、false を返します。
パラメーター
パラメーター | 説明 |
A | GeomGrid、H3Grid、または Geometry オブジェクト。 |
B | GeomGrid、H3Grid、または Geometry オブジェクト。 |
説明
2 つの GeomGrid/Geometry オブジェクトまたは 2 つの H3Grid/Geometry オブジェクトのバウンディングボックス間の空間的な包含関係をチェックします。 このオペレーターは、オブジェクト A のバウンディングボックスがオブジェクト B のバウンディングボックスを含む場合は true を返し、それ以外の場合は false を返します。
GeomGrid または H3Grid オブジェクトは、バウンディングボックスの関係がチェックされる前に Geometry オブジェクトに変換されます。
デフォルトでは、GeomGrid オブジェクトは CGC2000 座標系 (SRID=4490) を使用する Geometry オブジェクトに変換されます。
デフォルトでは、H3Grid オブジェクトは WGS 84 座標系 (SRID=4326) を使用する Geometry オブジェクトに変換されます。
例
例 1:
--~ (GeomGrid、GeomGrid) SELECT COUNT(*) from geomgrid_gist_test WHERE 'G00'::GeomGrid ~ code;戻り値:
------- 5例 2:
--~ (Geometry、GeomGrid) SELECT COUNT(*) from geomgrid_gist_test WHERE 'SRID=4490;POLYGON((88 24,88.8 24,88.8 24.5,88 24.5,88 24))'::Geometry ~ code;戻り値:
------- 2例 3:
--~ (H3Grid、H3Grid) SELECT COUNT(*) from h3grid_gist_test where code ~ ST_H3FromLatLng(-17.5, -65.0, 1);戻り値:
------- 0例 4:
--~ (Geometry、H3Grid) SELECT COUNT(*) from h3grid_gist_test WHERE 'SRID=4326;POLYGON((0 30,5 30,5 38,0 38,0 30))'::Geometry ~ code;戻り値:
------- 1
@
2 つの GeomGrid/Geometry オブジェクトまたは 2 つの H3Grid/Geometry オブジェクトのバウンディングボックス間の空間的な包含関係をチェックします。 GeomGrid または H3Grid オブジェクトは、バウンディングボックスの関係がチェックされる前に Geometry オブジェクトに変換されます。
構文
bool @(GeomGrid A, GeomGrid B);
bool @(GeomGrid A, Geometry B);
bool @(Geometry A, GeomGrid B);
bool @(H3Grid A, H3Grid B);
bool @(H3Grid A, Geometry B);
bool @(Geometry A, H3Grid B);戻り値
オブジェクト A のバウンディングボックスがオブジェクト B のバウンディングボックスに含まれる場合は true を返します。 それ以外の場合は、false を返します。
パラメーター
パラメーター | 説明 |
A | GeomGrid、H3Grid、または Geometry オブジェクト。 |
B | GeomGrid、H3Grid、または Geometry オブジェクト。 |
説明
2 つの GeomGrid/Geometry オブジェクトまたは 2 つの H3Grid/Geometry オブジェクトのバウンディングボックス間の空間的な包含関係をチェックします。 このオペレーターは、オブジェクト A のバウンディングボックスがオブジェクト B のバウンディングボックスに含まれる場合は true を返し、それ以外の場合は false を返します。
GeomGrid または H3Grid オブジェクトは、バウンディングボックスの関係がチェックされる前に Geometry オブジェクトに変換されます。
デフォルトでは、GeomGrid オブジェクトは CGC2000 座標系 (SRID=4490) を使用する Geometry オブジェクトに変換されます。
デフォルトでは、H3Grid オブジェクトは WGS 84 座標系 (SRID=4326) を使用する Geometry オブジェクトに変換されます。
例
例 1:
--@ (GeomGrid、GeomGrid) SELECT COUNT(*) from geomgrid_gist_test WHERE code @ 'G00'::GeomGrid;戻り値:
------- 5例 2:
--@ (GeomGrid、Geometry) SELECT COUNT(*) from geomgrid_gist_test WHERE code @ 'SRID=4490;POLYGON((88 24,88.8 24,88.8 24.5,88 24.5,88 24))'::Geometry;戻り値:
------- 2例 3:
--@ (H3Grid、H3Grid) SELECT COUNT(*) from h3grid_gist_test where code @ ST_H3FromLatLng(-17.5, -65.0, 1);戻り値:
------- 1例 4:
--@ (H3Grid、Geometry) SELECT COUNT(*) from h3grid_gist_test WHERE code @ 'SRID=4490;POLYGON((0 30,5 30,5 38,0 38,0 30))'::Geometry;戻り値:
------- 1