Spatial Data: Envolvendo e cercando polígonos

Ao se trabalhar com Spatial Data, alguns métodos podem ser bem úteis para agrupar, envolver, criar “cercas” com estes tipos de dados e outras soluções mais complexas.

O método STEnvelope envolve pontos, linhas e polígonos, criando um polígono a partir das extremidades horizontais e verticais. Este primeiro exemplo demonstra a utilização deste método sobre uma circunferência gerada a partir de um ponto.

DECLARE @P1 geometry
SET @P1 = geometry::Point(15, 10, 0).STBuffer(5)

SELECT @P1
UNION ALL
SELECT @P1.STEnvelope()

O segundo exemplo, o método STEnvelope sobre um polígono.

DECLARE @P2 geometry
SET @P2 = ('POLYGON((1 0, 2 1, 2 2, 3 3, 2 3, 1 2, 1 0))')

SELECT @P2
UNION ALL
SELECT @P2.STEnvelope()

O método STConvexHull utiliza os pontos das extremidades do dados geográficos / geométrica criando um polígono. O exemplo abaixo demonstra a utilização deste método sobre dois polígonos agrupados pelo método STUnion.

DECLARE @P1 geometry
DECLARE @P2 geometry
SET @P1 = ('POLYGON((1 0, 2 1, 2 2, 3 3, 2 3, 1 2, 1 0))')
SET @P2 = ('POLYGON((3 2, 3 1, 5 1, 5 2 , 4 3, 3 2))')

SELECT @P1.STUnion(@P2)
UNION ALL
SELECT @P1.STUnion(@P2).STConvexHull()

Outro exemplo demonstrando a utilização do método sobre uma estrutura multiponto:

DECLARE @PS geometry
SET @PS = ('MULTIPOINT((3 2), (5 1), (5 4), (4 2), (2 2))')

SELECT @PS.STBuffer(0.1)
UNION ALL
SELECT @PS.STConvexHull()

Algumas soluções de indexação podem ser realizadas com estes métodos de forma prática, exemplo, agrupar em registro cidades por estado e criar soluções de cercas, úteis para monitoramento de frota de veículos e distribuidoras.

3 pensamentos sobre “Spatial Data: Envolvendo e cercando polígonos

  1. Pingback: Trabalhando com SQL CLR e Spatial Data « SQL From Hell.com

  2. Pingback: Trabalhando com Spatial Data no SQL Server – Resumo « SQL From Hell.com

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s