名前

GetFaceByPoint — 与えられたポイントにインタセクトするフェイスの識別番号を探索します。

概要

integer GetFaceByPoint(varchar atopology, geometry apoint, float8 tol);

説明

与えられたポイントにインタセクトするフェイスの識別番号を探索します。

この関数は、トポロジ、ポイント、許容差を引数にして、整数 (フェイスの識別番号)を返します。許容差が0の場合には、ポイントはフェイスとインタセクトしていなければなりません。

ポイントがフェイスにインタセクトしない場合には.、0を返します。

許容差を0より大きくして、ポイント付近のフェイスが一つより多い場合には、例外が投げられます。

[注記]

許容差が0の場合には、ST_Intersectsを使い、それ以外では、ST_DWinthinを使います。

Availability: 2.0.0 - GEOS 3.3.0以上が必要

本例ではAddFaceで作ったフェイスを使います。

SELECT topology.GetFaceByPoint('ma_topo',geom, 10) As with1mtol, topology.GetFaceByPoint('ma_topo',geom,0) As withnotol
        FROM ST_GeomFromEWKT('POINT(234604.6 899382.0)') As geom;

         with1mtol | withnotol
        -----------+-----------
                         1 |         0
SELECT topology.GetFaceByPoint('ma_topo',geom, 1) As nearnode
        FROM ST_GeomFromEWKT('POINT(227591.9 893900.4)') As geom;

-- エラー発生--
ERROR:  Two or more faces found

関連情報

AddFace, GetNodeByPoint, GetEdgeByPoint