我正在使用SQL Server 2008 R2,有两个表:Regions和Facilities。这两个表都有一个包含地理元素的列。
我想计算地理元素交集的并集,如下所示:
我想计算地理元素交集的并集,如下所示:
SELECT * from Regions join Facilities on [Regions].[geography].STIntersects([Facilities].[geography])
当然这是行不通的。这些区域是大型多边形,设施是点,每个点只包含在一个多边形中。
我可以写一些伪代码。
for each r in Regions:
for each f in Facilities:
if f.[geography].STIntersects(r.[geography]):
print r, f
但使用数据库的整个目的是操作集合而不是元素,是吗?
那么,有更好的方法来做到这一点吗?
谢谢 Melanie
SELECT r.geography, f.geography from Regions r join Facilities f on r.geography.STIntersects(f.geography)=1
- RichardTheKiwi