すべてのプロダクト
Search
ドキュメントセンター

Hologres:PostGIS 空間関数

最終更新日:Aug 19, 2026

PostGIS は、空間データ型、関数、演算子で Hologres を拡張します。これを使用して、バウンディングボックスフィルターや近接検索から、ポリゴン交差チェックや距離計算まで、地理データを格納、クエリ、分析できます。

Hologres は PostGIS 3.0.0 をサポートしています。

エンジンのサポート

Hologres V1.3 以降では、ほとんどの PostGIS 関数は Alibaba Cloud が開発した Hologres クエリエンジン (HQE) 上で実行され、PQE よりも優れたクエリパフォーマンスを提供します。V1.3 より前のバージョンでは、関数は PostgreSQL クエリエンジン (PQE) 上で実行され、パフォーマンスが低下する可能性があります。各関数が使用するエンジンについては、「空間関数」をご参照ください。各関数テーブルには、グループ全体のエンジンが記載されているか、[必須エンジン] 列に記載されています。

PostGIS 拡張機能のインストールとアンインストール

スーパーユーザーとして次のステートメントを実行し、データベースに PostGIS をインストールします。インストールはデータベースごとに行われるため、空間サポートが必要な各データベースでこの手順を繰り返してください。

-- PostGIS を public スキーマに明示的にインストールします。
CREATE EXTENSION IF NOT EXISTS postgis SCHEMA public;
PostGIS は pg_catalog スキーマにはインストールできません。

インストールを検証するには、次を実行します。

SELECT public.postgis_full_version();

インストールが成功すると、POSTGIS="3.0.0 ..." のようなバージョン文字列が返されます。

説明

postgis_full_version() は public スキーマ内の PL/pgSQL 関数です。Hologres のデフォルトの search_path には public が含まれているため、スキーマプレフィックスなしで関数を呼び出すことができます。現在のセッションの search_path に public が含まれていない場合、呼び出しは function postgis_full_version() does not exist で失敗します。このトピックの例では、public. プレフィックスを使用しているため、どの search_path でも動作します。

PostGIS のアンインストール

拡張機能を削除するには、次を実行します。

DROP EXTENSION postgis;

データベースにまだ geometry または geography 型に依存するオブジェクト (例えば、「ジオメトリテーブルの作成とクエリ」で説明されているように作成されたテーブル) が含まれている場合、ステートメントは cannot drop extension postgis because other objects depend on it で失敗します。まず依存オブジェクトを削除してください。

  1. まだ空間型を使用しているオブジェクトと列を見つけます。

    SELECT n.nspname AS schema_name, c.relname AS object_name, a.attname AS column_name, t.typname
    FROM pg_attribute a
      JOIN pg_class c ON c.oid = a.attrelid
      JOIN pg_type t ON t.oid = a.atttypid
      JOIN pg_namespace n ON n.oid = c.relnamespace
    WHERE t.typname IN ('geometry', 'geography')
      AND c.relkind IN ('r', 'p', 'm', 'f')
      AND a.attnum > 0
      AND NOT a.attisdropped
      AND n.nspname NOT LIKE 'pg_%';
  2. クエリによって返された各テーブルを削除するか、その空間列のみを削除します。

    DROP TABLE <TABLE_NAME>;
    説明

    テーブルのごみ箱が有効になっている場合 (Hologres V3.1 以降のデフォルト)、DROP TABLE はテーブルをごみ箱に移動するため、次のステップも完了する必要があります。ごみ箱をバイパスして次のステップをスキップするには、代わりに DROP TABLE <TABLE_NAME> FORCE; を実行します。詳細については、「テーブルのごみ箱」をご参照ください。

  3. ごみ箱を空にします。ごみ箱内のテーブルはまだ空間型に依存しているため、ごみ箱が空になるまで型は使用中のままです。

    CALL hologres.hg_purge_all_tables();
    重要

    hg_purge_all_tables() は、現在のデータベースのごみ箱にあるすべてのテーブルを完全に削除します。この操作は元に戻せません。実行する前に、ごみ箱にまだ必要なテーブルがないことを確認してください。このコマンドは、現在のインスタンスのスーパーユーザーが実行する必要があります。

  4. 拡張機能をアンインストールします。

    DROP EXTENSION postgis;
重要

PostgreSQL のエラーメッセージが CASCADE を提案していても、DROP EXTENSION postgis CASCADE を使用するのではなく、上記のように依存オブジェクトを削除してください。CASCADE オプションは、拡張機能データ (PostGIS、RoaringBitmap、Proxima、Binlog、BSI データ) を、メタデータ、テーブル、ビュー、サーバーデータなど、拡張機能に依存するすべてのオブジェクトと共に削除します。この操作は元に戻せません。

spatial_ref_sys の競合解決

CREATE EXTENSION postgis がエラー relation spatial_ref_sys already exists で失敗した場合、データベースには以前のインストールから残された spatial_ref_sys システムテーブルが含まれています。通常の DROP EXTENSION postgis は何も残さないため、このエラーは通常、別のデータベースからの移行後、または同じ名前のテーブルが手動で作成された場合に表示されます。次のように競合を解決します。

  1. 部分的にインストールされた拡張機能を削除します。

    DROP EXTENSION IF EXISTS postgis;
  2. 残されたシステムテーブルを削除します。このステートメントを実行する前に、テーブルが以前のインストールからの残り物であり、業務テーブルではないことを確認してください。

    DROP TABLE IF EXISTS spatial_ref_sys CASCADE;
  3. PostGIS 拡張機能を再インストールします。

    CREATE EXTENSION IF NOT EXISTS postgis SCHEMA public;
  4. インストールを検証します。

    SELECT public.postgis_full_version();

ジオメトリテーブルの作成とクエリ

PostGIS は Hologres で 2 つの空間データ型をサポートしています:geometry (平面/デカルト座標) と geography (球面経度/緯度座標) です。geography 型の詳細については、「PostGIS geography ドキュメント」をご参照ください。

geometry 型はより一般的に使用されます。以下の手順では、ジオメトリテーブルを作成し、空間クエリを実行する方法を示します。

1. ジオメトリテーブルの作成

テーブルを作成する際に、ジオメトリのサブタイプを指定できます。サポートされているサブタイプ:Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon。

サブタイプなし:

CREATE TABLE holo_gis_1 (
  id   INT,
  geom geometry,
  PRIMARY KEY (id)
);

サブタイプと空間参照系識別子 (SRID) あり:

CREATE TABLE holo_gis_2 (
  id   INT,
  geom geometry(point, 4326),
  PRIMARY KEY (id)
);

この例では、サブタイプは Point で、SRID は 4326 (WGS 84) です。SRID が指定されていない場合、デフォルトは 0 です。挿入またはクエリ述語で使用するジオメトリの SRID は、列の SRID と一致する必要があります。そうでない場合、ステートメントは Geometry SRID (0) does not match column SRID (4326) や Operation on mixed SRID geometries などのエラーで失敗します。SRID の詳細については、「PostGIS ドキュメント」をご参照ください。

2. 空間データの挿入

-- SRID なし
INSERT INTO holo_gis_1 VALUES (1, ST_GeomFromText('point(116 39)'));

-- SRID 4326 あり
INSERT INTO holo_gis_2 VALUES (1, ST_GeomFromText('point(116 39)', 4326));

空間関数の詳細については、「空間関数」をご参照ください。

3. 空間データのクエリ

データを挿入した後、次の種類のクエリを実行できます。

矩形範囲クエリ

バウンディングボックス内のすべてのポイントを返します。

SRID なし:

SELECT st_astext(geom)
FROM holo_gis_1
WHERE ST_Covers(
  ST_MakeBox2D(ST_Point(116, 39), ST_Point(117, 40)),
  geom
);

SRID あり:

SELECT st_astext(geom)
FROM holo_gis_2
WHERE ST_Covers(
  ST_SetSRID(ST_MakeBox2D(ST_Point(116, 39), ST_Point(117, 40)), 4326),
  geom
);

両方のクエリが返す結果:

st_astext
-------------
POINT(116 39)
説明

大規模なデータセットの場合は、正確な空間述語を実行する前に、バウンディングボックス演算子 && を粗いフィルターとして使用します。これにより、正確な計算に到達する行の数が減少します。&& 演算子は HQE 上で実行されるため、ST_Intersects や ST_Covers のような PQE にプッシュダウンされるトポロジ関数よりもコストが低くなります。例:

SELECT st_astext(geom)
FROM holo_gis_1
WHERE geom && ST_MakeBox2D(ST_Point(116, 39), ST_Point(117, 40))
  AND ST_Intersects(ST_GeomFromText('POLYGON((116 39,117 39,117 40,116 40,116 39))'), geom);

矩形範囲フィルターのみが必要で、正確なトポロジセマンティクスが不要な場合は、geom && ST_MakeBox2D(...) を単独で使用します。列に SRID がある場合は、ボックスを同じ SRID の ST_SetSRID でラップします。そうしないと、ステートメントは Operation on mixed SRID geometries で失敗します。

ポリゴン交差チェック

任意のポリゴン内に収まる、またはその境界上にあるポイントを見つけるには、ポリゴンで ST_Intersects を使用します。ST_MakeBox2D によって構築されたバウンディングボックスとは異なり、ポリゴンは任意の形状を持つことができ、ST_Intersects は境界の接触を一致としてカウントします。

SRID なし:

SELECT st_astext(geom)
FROM holo_gis_1
WHERE ST_Intersects(
  ST_GeomFromText('POLYGON((116 39,117 39,117 40,116 40,116 39))'),
  geom
);

SRID を使用する場合:

SELECT st_astext(geom)
FROM holo_gis_2
WHERE ST_Intersects(
  ST_SetSRID(ST_GeomFromText('POLYGON((116 39,117 39,117 40,116 40,116 39))'), 4326),
  geom
);

どちらのクエリも以下を返します:

st_astext
-------------
POINT(116 39)

空間関数

PostGIS は、ジオメトリ値を変換および分析するための空間関数を提供します。関数の構文では、次のパラメーターが使用されます。

  • geom:geometry 値、または geometry に評価される式

  • precision:座標出力の精度を制御する INTEGER。パラメーター名、セマンティクス、およびデフォルト値は関数によって異なります。

    • ST_AsText(geom [, precision]):有効桁数。デフォルトは 15 です。

    • ST_AsGeoJSON(geom [, maxdecimaldigits]):小数点以下の最大桁数。デフォルトは 9 です。より高い精度を維持する必要がある場合は、このパラメーターを明示的に指定してください。そうしないと、エクスポートされた座標の精度が失われます。

    1 から 20 の値を指定することを推奨します。この範囲外の値も受け入れられますが、倍精度浮動小数点数が約 15〜17 の有効桁数を持つため、意味のある追加の桁は生成されません。

  • index:INTEGER。特に記載がない限り、1 ベースのインデックスです。

  • srid:INTEGER。空間参照系識別子です。

各関数は、次のいずれかのクエリエンジンで実行されます。

エンジン 適用時期 パフォーマンス
HQE (Hologres クエリエンジン) Hologres V1.3 以降 高い — 分析ワークロードに最適化
PQE (PostgreSQL クエリエンジン) すべてのバージョン。特定の関数で必須 低い — 互換モード

完全な PostGIS 関数の仕様については、「PostGIS リファレンスドキュメント」をご参照ください。

説明
  • 以下の表のエンジンの割り当ては、Hologres V4.2 で測定された動作を反映しており、現在のエンジン (HQE または PQE) のみを記載しています。関数が使用するエンジンは、バージョンによって変更される可能性があります。ご利用のインスタンスのエンジンを確認するには、EXPLAIN の出力に PQE ノードが含まれているかどうかを確認してください。バージョンごとの全体的なエンジンのサポートについては、「エンジンのサポート」をご参照ください。

  • 以下の表には、各関数の一般的に使用されるシグネチャがリストされています。一部の関数は追加のオーバーロードを受け入れます。例えば、ST_MakeLine はジオメトリの配列も受け入れ、ST_AddPoint は挿入位置も受け入れます。オーバーロードの完全なリスト、および例には表示されるがこれらの表にはリストされていない関数 (例:ST_MakeBox2D) については、「PostGIS リファレンスドキュメント」をご参照ください。

ジオメトリコンストラクター

このグループのすべての関数は HQE で実行されます。

関数 構文 戻り値 説明
ST_LineFromMultiPoint ST_LineFromMultiPoint(geom) GEOMETRY マルチポイントジオメトリからラインストリングを作成し、ポイントの順序を保持します。返されるジオメトリは、入力と同じ SRID を持ちます。
ST_MakeEnvelope ST_MakeEnvelope(xmin, ymin, xmax, ymax [, srid]) GEOMETRY (POLYGON) 指定された角の座標で定義される矩形ポリゴンを作成します。座標は左下と右上の角を指定します。座標が線または単一のポイントに縮退した場合でも、結果は常に POLYGON です。SRID が提供された場合、返されるジオメトリはその SRID を使用します。それ以外の場合、SRID は 0 です。
ST_MakeLine ST_MakeLine(geom1, geom2) GEOMETRY (LINESTRING) 2 つの入力ジオメトリからラインストリングを作成します。
ST_MakePoint ST_MakePoint(x, y) GEOMETRY (POINT) 座標値からポイントを作成します。
ST_Point ST_Point(x, y) GEOMETRY (POINT) 座標値からポイントを作成します。
ST_Polygon ST_Polygon(linestring, srid) GEOMETRY (POLYGON) 外環が入力ラインストリングであるポリゴンを、指定された SRID で作成します。

ジオメトリアクセサー

このグループのすべての関数は HQE で実行されますが、ST_IsPolygonCCW は PQE で実行されます。これらは補完的ではありません。外環と内環の向きが同じ場合、両方とも false を返します。反時計回りの向きをテストするために ST_IsPolygonCW を否定しないでください。大きなテーブルを環の向きでフィルタリングする場合、これら 2 つの関数が異なるエンジンで実行されることにも注意してください。

関数 構文 戻り値 説明
GeometryType GeometryType(geom) TEXT 入力ジオメトリのサブタイプ名を、プレフィックスなしの大文字の文字列 (例:POINT、POLYGON) で返します。
ST_Boundary ST_Boundary(geom) GEOMETRY 入力ジオメトリの境界を返します。空のジオメトリは入力をそのまま返します。ポイントまたは空でないマルチポイントは空のジオメトリコレクションを返します。ラインストリングはその境界ポイントのマルチポイントを返します。内環のないポリゴンは閉じたラインストリングを返します。内環のあるポリゴンまたはマルチポリゴンはすべての境界環のマルチラインストリングを返します。
ST_Dimension ST_Dimension(geom) INTEGER ジオメトリサブタイプの固有のディメンションを返します。
ST_Envelope ST_Envelope(geom) GEOMETRY 入力ジオメトリの最小バウンディングボックスを返します。ボックスがポイントに縮退する場合はポイントを、1 次元の場合は 2 ポイントのラインストリングを、それ以外の場合は時計回りのポリゴンを返します。返されるジオメトリは、入力と同じ SRID を持ちます。
ST_ExteriorRing ST_ExteriorRing(geom) GEOMETRY (LINESTRING) ポリゴンの外環を閉じたラインストリングとして返します。
ST_GeometryN ST_GeometryN(geom, index) GEOMETRY 指定された 1 ベースのインデックスにあるジオメトリを返します。単純なジオメトリ (ポイント、ラインストリング、ポリゴン) でインデックスが 1 の場合は、ジオメトリ自体を返します。それ以外の場合は null を返します。コレクションの場合は、インデックスの要素を返します。
ST_GeometryType ST_GeometryType(geom) TEXT 入力ジオメトリのサブタイプ名を、ST_ プレフィックス付きの文字列 (例:ST_Point、ST_Polygon) で返します。このプレフィックスは GeometryType との唯一の違いであるため、等価条件を記述する際にはフォーマットを考慮してください。
ST_InteriorRingN ST_InteriorRingN(geom, index) GEOMETRY (LINESTRING) 指定されたインデックス位置にあるポリゴンの内環を閉じたラインストリングとして返します。
ST_IsClosed ST_IsClosed(geom) BOOLEAN ジオメトリが閉じている場合に true を返します。ポイントまたはマルチポイントは常に閉じています。ラインストリングは、開始点と終了点が一致する場合に閉じています。ポリゴンは、すべての環が空でなく、その開始点と終了点が一致する場合に閉じています。
ST_IsCollection ST_IsCollection(geom) BOOLEAN ジオメトリが GEOMETRYCOLLECTION、MULTIPOINT、MULTILINESTRING、または MULTIPOLYGON の場合に true を返します。
ST_IsEmpty ST_IsEmpty(geom) BOOLEAN ジオメトリにポイントが含まれていない場合に true を返します。
ST_IsPolygonCCW ST_IsPolygonCCW(geom) BOOLEAN 入力ポリゴンの外環が反時計回りで、すべての内環が時計回りである場合に true を返します。外環と内環の向きが同じ場合は false を返します。また、ポイント、ラインストリング、マルチポイント、マルチラインストリング、ポリゴン要素がすべて先行条件を満たすジオメトリコレクション、および空のポリゴン (POLYGON EMPTY) に対しても true を返します。
ST_IsPolygonCW ST_IsPolygonCW(geom) BOOLEAN 入力ポリゴンの外環が時計回りで、すべての内環が反時計回りである場合に true を返します。外環と内環の向きが同じ場合は false を返します。また、ポイント、ラインストリング、マルチポイント、マルチラインストリング、ポリゴン要素がすべて先行条件を満たすジオメトリコレクション、および空のポリゴン (POLYGON EMPTY) に対しても true を返します。
ST_IsSimple ST_IsSimple(geom) BOOLEAN ジオメトリに自己交差などの異常な幾何学的ポイントがない場合に true を返します。
ST_NPoints ST_NPoints(geom) INTEGER ジオメトリ内のポイントの数を返します。
ST_NRings ST_NRings(geom) INTEGER ジオメトリ内の環の数を返します。
ST_NumGeometries ST_NumGeometries(geom) INTEGER ジオメトリコレクション内の要素の数を返します。
ST_NumInteriorRings ST_NumInteriorRings(geom) INTEGER ポリゴン内の内環の数を返します。
ST_NumPoints ST_NumPoints(geom) INTEGER ジオメトリ内のポイントの数を返します。
ST_PointN ST_PointN(geom, index) GEOMETRY (POINT) ラインストリング内の指定されたインデックスにあるポイントを返します。負のインデックス値は末尾から数えます。-1 は最後のポイントを返します。
ST_Points ST_Points(geom) GEOMETRY (MULTIPOINT) ジオメトリ内のすべての空でないポイントをマルチポイントとして返します。環の開始点と終了点を含む重複ポイントは保持されます。
ST_StartPoint ST_StartPoint(geom) GEOMETRY ラインストリングの最初のポイントを返します。返されるジオメトリは、入力と同じ SRID を持ちます。
ST_X ST_X(point) DOUBLE PRECISION ポイントの X 座標を返します。
ST_Y ST_Y(point) DOUBLE PRECISION ポイントの Y 座標を返します。

ジオメトリエディター

このグループのすべての関数は HQE で実行されます。

関数 構文 戻り値 説明
ST_AddPoint ST_AddPoint(geom1, geom2) GEOMETRY ポイントが追加されたラインストリングを返します。
ST_Multi ST_Multi(geom) GEOMETRY (MULTIPOINT、MULTILINESTRING、MULTIPOLYGON、または GEOMETRYCOLLECTION) ジオメトリを対応するマルチタイプに変換します。入力がすでにマルチタイプまたはコレクションである場合は、コピーを返します。
ST_RemovePoint ST_RemovePoint(geom, index) GEOMETRY 指定されたゼロベースのインデックスにあるポイントが削除されたラインストリングを返します。返されるジオメトリは、入力と同じ SRID を持ちます。
ST_Reverse ST_Reverse(geom) GEOMETRY 線形または面状ジオメトリの頂点の順序を逆にします。ポイントまたはマルチポイントの場合は、コピーを返します。コレクションの場合は、各要素の頂点を逆にします。
ST_SetPoint ST_SetPoint(geom1, index, geom2) GEOMETRY 指定されたインデックスにあるポイントが入力ポイントの座標に置き換えられたラインストリングを返します。

ジオメトリの検証

関数 構文 戻り値 必須エンジン 説明
ST_IsValid ST_IsValid(geom) BOOLEAN PQE ジオメトリが OGC 仕様に従って有効である場合に true を返します。

空間参照系関数

このグループのすべての関数は HQE で実行されます。

関数 構文 戻り値 説明
ST_SetSRID ST_SetSRID(geom, srid) GEOMETRY 入力ジオメトリの SRID を指定された値に更新して返します。座標は再投影されません。
ST_SRID ST_SRID(geom) INTEGER 入力ジオメトリの SRID を返します。

ジオメトリ入力

関数 構文 戻り値 必須エンジン 説明
ST_GeomFromText ST_GeomFromText(wkt_string [, srid]) GEOMETRY PQE Well-known text (WKT) 表現からジオメトリを構築します。

ジオメトリ出力

このグループのすべての関数は HQE で実行されます。

関数 構文 戻り値 説明
ST_AsBinary ST_AsBinary(geom) BYTEA ジオメトリの Well-known binary (WKB) 表現を、ASCII 文字 0–9 および A–F を使用した 16 進文字列としてエンコードして返します。
ST_AsEWKB ST_AsEWKB(geom) BYTEA ジオメトリの拡張 Well-known binary (EWKB) 表現を返します。
ST_AsEWKT ST_AsEWKT(geom) TEXT ジオメトリの拡張 Well-known text (EWKT) 表現を返します。
ST_AsGeoJSON ST_AsGeoJSON(geom [, maxdecimaldigits]) TEXT ジオメトリの GeoJSON 表現を返します。
ST_AsText ST_AsText(geom [, precision]) TEXT ジオメトリの WKT 表現を返します。

空間関係述語

このグループのエンジンは関数によって異なります。[必須エンジン] 列をご参照ください。

関数 構文 戻り値 必須エンジン 説明
ST_Contains ST_Contains(geom1, geom2) BOOLEAN PQE geom2 のすべてのポイントが geom1 にあり、それらの内部が交差する場合に true を返します。ST_Within(geom2, geom1) と同等です。
ST_ContainsProperly ST_ContainsProperly(geom1, geom2) BOOLEAN PQE 両方のジオメトリが空でなく、geom2 のすべてのポイントが geom1 の内部 (境界ではない) にある場合に true を返します。
ST_CoveredBy ST_CoveredBy(geom1, geom2) BOOLEAN HQE geom1 のすべてのポイントが geom2 にある場合に true を返します。ST_Covers(geom2, geom1) と同等です。
ST_Covers ST_Covers(geom1, geom2) BOOLEAN PQE geom2 のすべてのポイントが geom1 にある場合に true を返します。ST_CoveredBy(geom2, geom1) と同等です。
ST_Crosses ST_Crosses(geom1, geom2) BOOLEAN HQE 2 つのジオメトリが交差する場合に true を返します。
ST_Disjoint ST_Disjoint(geom1, geom2) BOOLEAN HQE 2 つのジオメトリがポイントを共有しない場合に true を返します。
ST_DWithin ST_DWithin(geom1, geom2, threshold) BOOLEAN PQE 2 つのジオメトリ間のユークリッド距離がしきい値を超えない場合に true を返します。
ST_DWithin_S2 ST_DWithin_S2(x1, y1, x2, y2, threshold) BOOLEAN HQE 2 つの地理的位置間の球面距離が threshold (単位:メートル) 以下である場合に true を返します。パラメーターの順序:位置 1 の経度、位置 1 の緯度、位置 2 の経度、位置 2 の緯度、距離しきい値。Hologres V2.0.8 以降でサポートされています。現在のバージョンでは定数入力はサポートされていません。
ST_Equals ST_Equals(geom1, geom2) BOOLEAN HQE 2 つのジオメトリが等しいポイントセットを持ち、それらの内部が交差する場合に true を返します。
ST_Intersects ST_Intersects(geom1, geom2) BOOLEAN PQE 2 つのジオメトリが少なくとも 1 つのポイントを共有する場合に true を返します。
ST_Touches ST_Touches(geom1, geom2) BOOLEAN HQE 2 つのジオメトリが接触する場合 (交差するが内部ポイントを共有しない) に true を返します。
ST_Within ST_Within(geom1, geom2) BOOLEAN PQE geom1 のすべてのポイントが geom2 にあり、それらの内部が交差する場合に true を返します。ST_Contains(geom2, geom1) と同等です。

計測関数

関数 構文 戻り値 必須エンジン 説明
ST_Angle ST_Angle(geom1, geom2, geom3 [, geom4]) DOUBLE PRECISION HQE [0, 2π) の範囲で時計回りの角度をラジアンで返します。3 つのポイントの場合、P2 を中心とした P1 から P3 への回転を測定します。4 つのポイントの場合、有向線 P1–P2 と P3–P4 の間の角度を測定します。P1 が P2 と等しいか、P3 が P4 と等しい場合は null を返します。
ST_Area ST_Area(geom) DOUBLE PRECISION HQE 座標系と同じ単位でジオメトリのデカルト面積を返します。ポイント、ラインストリング、およびそれらのマルチタイプに対しては 0 を返します。コレクションの場合は、すべての要素の面積の合計を返します。
ST_Azimuth ST_Azimuth(point1, point2) DOUBLE PRECISION HQE 2 つのポイントで定義される北基準のデカルト方位角を返します。
ST_Distance ST_Distance(geom1, geom2) DOUBLE PRECISION HQE 2 つのジオメトリ間のデカルト距離を、入力座標と同じ単位で返します。メートル単位の球面距離を計算するには、ジオメトリではなく経度と緯度の値を取る ST_Distance_Sphere_S2 を使用します。
ST_Distance_Sphere_S2 ST_Distance_Sphere_S2(x1, y1, x2, y2) DOUBLE PRECISION HQE 2 つの地理的位置間の球面距離をメートル単位で返します。パラメーターの順序:位置 1 の経度、位置 1 の緯度、位置 2 の経度、位置 2 の緯度。有効な緯度範囲:[-90, +90]。有効な経度範囲:[-180, +180]。Hologres V2.0.8 以降でサポートされています。現在のバージョンでは定数入力はサポートされていません。
ST_Length ST_Length(geom) DOUBLE PRECISION HQE 線形ジオメトリのデカルト長を、座標系と同じ単位で返します。ポイント、マルチポイント、および面状ジオメトリに対しては 0 を返します。コレクションの場合は、全長を返します。
ST_Perimeter ST_Perimeter(geom) DOUBLE PRECISION HQE 面状ジオメトリのデカルト周長 (境界長) を、座標系と同じ単位で返します。ポイント、マルチポイント、および線形ジオメトリに対しては 0 を返します。コレクションの場合は、すべての要素の周長の合計を返します。

オーバーレイ関数

関数 構文 戻り値 必須エンジン 説明
ST_Intersection ST_Intersection(geom1, geom2) GEOMETRY HQE 2 つのジオメトリの幾何学的交差を返します。

ジオメトリ処理関数

関数 構文 戻り値 必須エンジン 説明
ST_Buffer ST_Buffer(geom, radius) 入力タイプと同じ:ジオメトリ入力の場合は GEOMETRY、ジオグラフィ入力の場合は GEOGRAPHY PQE 入力ジオメトリの指定された半径内のすべてのポイントを表すジオメトリを返します。
ST_ConvexHull ST_ConvexHull(geom) GEOMETRY HQE 入力ジオメトリ内のすべての空でないポイントの凸包を返します。
ST_Simplify ST_Simplify(geom, tolerance) GEOMETRY HQE 指定された許容誤差で Ramer-Douglas-Peucker アルゴリズムを使用して、ジオメトリの単純化されたコピーを返します。トポロジは保持されない場合があります。

バウンディングボックス関数

このグループのすべての関数は PQE で実行されます。

関数 構文 戻り値 説明
ST_XMax ST_XMax(geom) DOUBLE PRECISION ジオメトリのバウンディングボックスの最大 X 座標を返します。パラメータータイプは box3d です。ジオメトリ入力は暗黙的にキャストされます。
ST_XMin ST_XMin(geom) DOUBLE PRECISION ジオメトリのバウンディングボックスの最小 X 座標を返します。パラメータータイプは box3d です。ジオメトリ入力は暗黙的にキャストされます。
ST_YMax ST_YMax(geom) DOUBLE PRECISION ジオメトリのバウンディングボックスの最大 Y 座標を返します。パラメータータイプは box3d です。ジオメトリ入力は暗黙的にキャストされます。
ST_YMin ST_YMin(geom) DOUBLE PRECISION ジオメトリのバウンディングボックスの最小 Y 座標を返します。パラメータータイプは box3d です。ジオメトリ入力は暗黙的にキャストされます。

線形参照関数

関数 構文 戻り値 必須エンジン 説明
ST_LineInterpolatePoint ST_LineInterpolatePoint(geom, fraction) GEOMETRY (POINT) HQE 開始点から測定した、線に沿った小数距離にあるポイントを返します。例えば、fraction=0.5 は中間点を返します。

空間関数を使用するためのベストプラクティス

一般的な地理分析パターンのエンドツーエンドの例については、「空間関数を使用したデータのクエリ」をご参照ください。