计算地理多边形中的所有点(sql server 2014)

时间:2015-10-19 15:48:26

标签: sql sql-server

我有一个表,其中包含许多使用地理多边形映射的位置

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

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

class C : public B
{
   public:
      int action(std::vector<float>) override
      {
         A::action(std::vector<float>());
         return 7;
      }
};

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

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

我真的需要一些帮助

修改

感谢Ben,我终于开始工作,这里的代码对我有用:)

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

1 个答案:

答案 0 :(得分:1)

这样的事情应该有效:

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,
   …
)