Eu tenho algumas centenas de formas ( polygon
s e multipolygon
s) cada uma composta por dezenas de milhares de pontos que eu estou tentando entrar em SQL Server 2008.
Infelizmente, as formas que tentei importar são "destras" (o perímetro de cada uma é desenhado no sentido horário em torno dos pontos que ela contém). O servidor SQL assume formas "canhotas" (anti-horário no interior), pelo menos para os geography
tipos. Isso significa que o SQL assume que estou tentando selecionar a terra inteira, exceto a minha forma. Algumas pessoas descrevem isso como formas "de dentro para fora".
Do MSDN , que frustrantemente não diz qual orientação de toque usar:
Se usarmos o
geography
tipo de dados para armazenar a instância espacial, devemos especificar a orientação do anel e descrever com precisão o local da instância.
Se você usar a orientação de toque incorreta no SQL 2008, ela trava com o seguinte erro (ênfase minha):
Ocorreu um erro do .NET Framework durante a execução da rotina definida pelo usuário ou da "geografia" agregada: Microsoft.SqlServer.Types.GLArgumentException: 24205: A entrada especificada não representa uma instância geográfica válida porque excede um único hemisfério. Cada instância geográfica deve caber dentro de um único hemisfério. Um motivo comum para esse erro é que um polígono tem a orientação incorreta do toque.
Importar as formas como em geometry
vez de geography
funcionar bem, mas eu gostaria de usar geography
se puder.
No SQL 2012, parece bastante trivial corrigir esse problema, mas estou vinculado a 2008.
Como devo converter as formas?