Name

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

Synopsis

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

説明

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

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

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

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

[Note]

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

Availability: 2.0.0 - GEOS 3.3.0以上が必要

These examples use edges faces created in 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;

-- get error --
ERROR:  Two or more faces found

関連情報

AddFace, GetNodeByPoint, GetEdgeByPoint