繁体   English   中英

计算地理多边形中的所有点(SQL Server 2014)

[英]Count all point in geo polygon (sql server 2014)

我有一张桌子,上面有很多使用地理多边形映射的位置

然后我有另一个表,该表的属性的位置是“地理位置”属性

如果使用此代码,则会得到特定位置的属性数量:

SELECT COUNT(id) FROM Property 
WHERE [Status] = 1 
AND Location.Filter(Geography::Parse('POLYGON ((8.476 40.2591,8.4618 40.241,8.4787 40.2403,8.4851 40.2539,8.476 40.2591))')) = 1

但是问题在于我想知道每个位置有多少个属性(查询中使用的多边形来自位置表)

表之间的唯一连接是位置点

我真的需要一些帮助

编辑:

多亏了Ben,我终于有了它,下面的代码对我有用:)

    SELECT location.Id, (SELECT COUNT(property.Id) FROM Property AS property WHERE property.Location.Filter(Geography::Parse('POLYGON ((' + location.GeoPolygon + '))')) = 1) AS PropertyCount 
FROM Location AS location

这样的事情应该起作用:

SELECT l.LocationID, count(*)
FROM dbo.Location as l
JOIN dbo.Property as p
   on l.geoColumn.STContains(p.Location) = 1

我假设您的Location表上的结构类似:

create table dbo.Location (
   LocationID int,
   geoColumn geography,
   …
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM