【发布时间】:2016-05-13 03:30:47
【问题描述】:
我有一个包含 40 个多边形的表格,它们包含名称、id 和几何形状。我有第二个地址表,它自己的几何图形表示为点。我使用 geometry::UnionAggregate 聚合了 40 个多边形。
我希望能够从我的地址表中返回一个点的多边形 ID。
以下是我的代码,但我为 40 个多边形中的每一个得到了一个真值 (1)。对于实际包含该点的多边形,我期待 39 nulls 和 '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
【问题讨论】: