Alguns softwares espaciais não gostam do uso de a GeographyCollection
. A GeographyCollection
pode conter vários tipos de geografia na coleção única. Pessoalmente, tendo a achar isso um pouco confuso.
Então, para contornar isso, você pode dividir seus GeographyCollection
polígonos separados.
Com meu exemplo, tenho uma grande fronteira com a Austrália. Acontece que é um GeographyCollection consistindo em 226 separados Polygon's
.
Imagem.
Dados de amostra..
Portanto, para obter esses dados, aqui está o código Sql:
SET NOCOUNT ON
-- Create the numbers table.
DECLARE @counter INTEGER
DECLARE @numberTable TABLE(Number INTEGER PRIMARY KEY)
SELECT @counter = 1
WHILE @counter <= 10000
BEGIN
INSERT INTO @numberTable(number) VALUES (@counter)
SELECT @counter = @counter + 1
END
-- Now extract the data.
-- NOTE: My shape boundaries are in a table called GeographyBoundaries.
SELECT
a.LocationId,
a.OriginalBoundary.STGeometryN(b.number) AS Shape,
a.OriginalBoundary.STGeometryN(b.number).ToString() AS WellKnownText
FROM GeographyBoundaries a
INNER JOIN @numberTable b ON b.number <= a.OriginalBoundary.STNumGeometries()
WHERE a.LocationId = 5709978
Tenho certeza que este código pode ser limpo – mas como uma tarefa de manutenção rápida, atende aos nossos propósitos, tudo bem 🙂
Dica de chapéu: Essa ideia foi inspirada originalmente nesta postagem do blog .