У меня много Polygons
типов данных Geometry
в SQL Server 2008. На изображении ниже показано, как визуализируется выборка из всех этих геометрий.
Что мне нужно сделать, так это создать многоугольник, который представляет внешнюю границу всех этих многоугольников. Поэтому я использовал ответ на предыдущий пространственный вопрос Я попросил создать следующий код:
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, я не смог найти ту, которая, казалось бы, дала нужные мне результаты?