Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
ジオメトリ値が別のジオメトリ値内に空間的に含まれているかどうかをテストします。
geometry-expression.ST_Within(geo2)
geo2
ST_Geometry
geometry-expression と比較するもう一方のジオメトリ値。
BIT geometry-expression が geo2 内にある場合は 1 を返し、それ以外の場合は 0 を返します。
ST_Within メソッドは、geometry-expression が完全に geo2 内にあり、geometry-expression の内部にある geo2 の内部ポイントが 1 つ以上存在するかどうかをテストします。
geometry-expression.ST_Within( geo2 ) は、geo2.ST_Contains( geometry-expression ) と同等です。
ST_Within メソッドと ST_CoveredBy メソッドは似ています。相違点は、ST_CoveredBy では内部ポイントの交差が不要であることです。
geometry-expression に円ストリングが含まれている場合、それらは線ストリングに補間されます。
このメソッドは、曲面の空間参照系のジオメトリでは使用できません。
SQL/MM (ISO/IEC 13249-3: 2006) 5.1.30
次の例では、ポイントが多角形内にあるかどうかをテストします。ポイントが完全に多角形内にあり、ポイント (ポイント自体) の内部が多角形の内部と交差しているため、1 が返されます。
SELECT NEW ST_Point( 1, 1 ) .ST_Within( NEW ST_Polygon( 'Polygon(( 0 0, 2 0, 1 2, 0 0 ))' ) )
次の例では、線が多角形内にあるかどうかをテストします。線は完全に多角形内にありますが、線の内部と多角形の内部は交差していない (線は多角形の境界でのみ多角形と交差し、その境界は内部に含まれていない) ため、0 が返されます。ST_Within の代わりに ST_CoveredBy を使用した場合は、1 が返されます。
SELECT NEW ST_LineString( 'LineString( 0 0, 1 0 )' ) .ST_Within( NEW ST_Polygon( 'Polygon(( 0 0, 2 0, 1 2, 0 0 ))' ) )
次の例では、指定したポイントが Shape ジオメトリ内にある ShapeID をリストします。この例では、結果として 3,5 を返します。ポイントは多角形の境界でローの Shape 多角形と交差しているため、ShapeID 6 はリストされません。
3,5
SELECT LIST( ShapeID ORDER BY ShapeID ) FROM SpatialShapes WHERE NEW ST_Point( 1, 4 ).ST_Within( Shape ) = 1