sql >> Base de Datos >  >> RDS >> Sqlserver

Tipo de datos de geografía frente a tipo de datos de geometría en SQL Server

El tipo de geografía es un poco más restrictivo que la geometría. No puede cruzar diferentes hemisferios y el anillo exterior debe dibujarse en sentido contrario a las agujas del reloj.

Desafortunadamente (algunos consideran que esto es algo bueno), SQL Server 2012 ya no arroja un error cuando crea la geografía no válida. Debe invertir el orden de los puntos en la geometría de Roben Island, 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'