名前、ID、およびジオメトリを含む40個のポリゴンのテーブルがあります。私は2番目のアドレス表を持っています。私はgeometry::UnionAggregate
を使って40のポリゴンを集計しました。SQL Serverのポイントを含むリターンポリゴン名2014
多角形のIDは、特に私のアドレステーブルから1点返すことができます。 以下は私のコードですが、40個のポリゴンごとに真の値(1)が得られます。私は39 nulls
が実際にポイントを含むポリゴンのために '1'を期待していた。これは今では集約されたポリゴンを1つのエンティティとして扱うため、すべてがポイントを含むためですか?
私は空間クエリを初めて使用しているため、何かが曖昧にはっきりしていないかもしれませんが、助けていただければ幸いです。
declare @n geometry
set @n = (select geometry::UnionAggregate(sp_geometry) from Polygons)
declare @p geometry
set @p = (select sp_geometry from PointData);
select n.id from Polygons n, pointdata p
where @n.MakeValid().STWithin(@p) = 1
ありがとうございました。 – SSingh