我在 SQL Server 2008 中有许多数据类型为 Geometry
的 Polygons
。下面的图片展示了所有这些几何图形的可视化选择结果。
DECLARE @test TABLE(geom GEOMETRY);
INSERT INTO @test SELECT geom FROM ForceBoundary
DECLARE @geom GEOMETRY
SELECT @geom = (SELECT TOP 1 geom FROM @test)
SELECT @geom = @geom.STUnion(geom) FROM @test
SELECT @geom
这样产生的结果如下,由于多边形之间的空洞而出现了裂缝:
所以我用以下更改更新了我的查询:
INSERT INTO @test SELECT geom.Reduce(0.001).STBuffer(100) FROM ForceBoundary
虽然这种方法改善了结果,但并没有完全解决问题,还会损害外部边界的精度。
如何正确实现这个目标? 从查看 STxxxx 函数列表中,我没有找到一个似乎能提供所需结果的函数。
SELECT @geom
返回如上所示的合并多边形。SELECT @geom.STExteriorRing()
没有返回任何内容。将其附加到.STAsText()
将返回 null。 - Peter Bridger