合并具有计算列的SQL Spatial多边形

时间:2017-05-17 22:52:27

标签: sql-server merge spatial area polygons

我无法在SQL Spatial表中获取多边形以合并有计算列的位置。

原始查询效果很好:

SELECT RollNumber, Geometry_SPA.STArea() AS SqMetres, Geometry, geometry::UnionAggregate(Geometry_SPA.MakeValid()) AS Geometry_SPA    
FROM     dbo.LegalParcel               
GROUP BY RollNumber, Geometry, Geometry_SPA.STArea()

它返回一组由其税卷编号合并的多边形。

但是我们想知道区域,所以我们添加了一个计算列:

columngeometry::UnionAggregate(Geometry_SPA.STArea()) As SqMetres

由于这需要将Geometry_SPA添加到Group By,现在应该合并的多边形将作为离散记录返回。

我尝试将聚合添加到新的SqMetres列

{{1}}

然而,结果是错误'操作数类型碰撞:浮动与几何'

不兼容

如何获得必要的合并记录?

请注意,有人想知道为什么有两个几何列:这是我们的GIS软件的要求。

1 个答案:

答案 0 :(得分:0)

显然,问题可追溯到源表中的一些可疑多边形。运行后

更新dbo.legalparcel设置Geometry_SPA = Geometry_SPA.MakeValid() 其中Geometry_SPA.STIsValid()= 0

我现在使用原始计算列获得正确的结果。