可使用SQL Server空间.STContains
函数(https://learn.microsoft.com/en-us/sql/t-sql/spatial-geometry/stcontains-geometry-data-type?view=sql-server-ver16&viewFallbackFrom=sql-server-ver18)计算面之间的重叠
我可以得到一些代码样本来获取位于给定多边形内的多边形列表(记录索引应该是查询参数),返回该多边形内的记录列表吗?
select *
from table
where PolygonsInside (RecordIndex = 1)
如何获取此SQL查询?
1条答案
按热度按时间oug3syen1#
您的描述(“多边形之间的重叠”)不一定与您选择的函数匹配(来自您链接到的同一文档,
STContains()
“如果一个几何体示例完全包含另一个几何体示例,则返回1。");STIntersects()
可能是更好的选择。不管这些,下面是一个查询,您可以编写该查询来查找表中与同一表中给定的另一个多边形ID重叠的任何多边形。
也就是说,如果您提供的ID为1,该查询将在表中查找与该ID相交的任何多边形。注意,我在连接中添加了一个 predicate ,以便不返回具有所提供ID的多边形-这可能是也可能不是您想要的,但如果您 * 确实 * 想要返回该多边形,则很容易将其删除。