Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Type de données Géographie et type de données Géométrie dans SQL Server

Le type géographique est un peu plus restrictif que la géométrie. Il ne peut pas traverser différents hémisphères et l'anneau extérieur doit être tiré dans le sens antihoraire.

Malheureusement (certains trouvent cela une bonne chose), SQL Server 2012 ne génère plus d'erreur lorsque vous créez la géographie non valide. Vous devez inverser l'ordre des points dans la géométrie de Roben Island, comme :

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'