Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Tipo di dati geografico e tipo di dati Geometry in SQL Server

Il tipo di geografia è un po' più restrittivo della geometria. Non può attraversare diversi emisferi e l'anello esterno deve essere disegnato in senso antiorario.

Sfortunatamente (alcuni lo trovano una buona cosa), SQL Server 2012 non genera più un errore quando crei l'area geografica non valida. Devi invertire l'ordine dei punti nella geometria di Roben Island, come:

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'