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.
Muito bom, ta aew uma coisa que eu nem imaginava.