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

SQL Server - De la longitude et la latitude au type de données de géométrie

Vous avez une géométrie, qui stocke une forme dans la géométrie euclidienne, et vous souhaitez y associer un point du globe, représenté par une latitude et une longitude, pour voir s'il se trouve à l'intérieur. Cela ne fonctionnera pas, en raison de la façon dont SQL stocke les données. Vous devez probablement utiliser les types de données Géographie pour vérifier cela - La latitude et la longitude sont des points sur une sphère (en fait des données géodésiques, puisque la Terre n'est pas tout à fait une sphère.)

Pour plus d'informations sur les raisons pour lesquelles ils sont différents, consultez cette explication de Microsoft . Aussi cette réponse sur stackoverflow :GÉOMÉTRIE et GÉOGRAPHIE différence SQL Serveur 2008

Pour convertir vos données de géométrie en géographie, essayez :Geography::STGeomFromText(cast(GeomCol as varchar(max)), 4326)

Ensuite, vous pouvez utiliser les STIntersects méthode, documentée par microsoft ici .