Mais

Limpando uniões poligonais inexatas

Limpando uniões poligonais inexatas


Tenho dados geográficos armazenados no SQL Server e estou tentando mesclar polígonos de dois conjuntos de dados. O problema é que eles não se alinham exatamente, portanto, uni-los resulta em lacunas estreitas ao longo dos limites entre os dois conjuntos. Qual é a maneira mais fácil de remover essas costuras? Atualmente estou fazendo isso no SQL Server, então se eu pudesse fazer isso com as ferramentas fornecidas pelo SQL Server, seria o ideal. Caso contrário, estou aberto a usar outra ferramenta, de preferência gratuita.


Para me livrar das costuras, descobri que usar a seguinte consulta funciona muito bem:

SELECT ID, shape.STBuffer (15) .STDifference ((SELECT GEOGRAPHY :: UnionAggregate (shape) FROM TableName AS sub WHERE sub.ID <> TableName.ID)) FROM TableName

O que isso faz é apenas estender as bordas ao longo da borda externa da coleção de formas. O STBuffer amplia o tamanho de cada forma da coleção. A parte STDifference remove qualquer excesso que se sobreponha à coleção de formas, deixando as bordas externas estendidas. Esta parte estendida cobre as costuras ao unir as formas com outras coleções. O valor passado para o STBuffer deve ser ajustado para ser o menor possível e ainda cobrir as costuras para evitar possíveis distorções.


Assista o vídeo: LIMPANDO O NARIZ DO BEBÊ COM o COTONETE