Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Tipo de dados Geography vs. Tipo de dados Geometry no SQL Server


O tipo de geografia é um pouco mais restritivo do que a geometria. Não pode cruzar hemisférios diferentes e o anel externo deve ser desenhado no sentido anti-horário.

Infelizmente (alguns acham isso bom), o SQL Server 2012 não gera mais um erro quando você cria a geografia inválida. Você precisa inverter a ordem dos pontos na geometria da Ilha Roben, como:
DECLARE @robben_island geography = ('POLYGON((18.351803 -33.788421, 18.354464 -33.822369,18.386736 -33.820515, 18.382788 -33.787494, 18.351803 -33.788421))')
DECLARE @point_in_robben_island geography= ('POINT(18.369226 -33.80554)')
DECLARE @point_in_alcatraz geography= ('POINT(-122.423401 37.827006)')

SELECT @robben_island.STContains(@point_in_robben_island)   --returns 'True'
SELECT @robben_island.STContains(@point_in_alcatraz)        --returns 'False'