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

SQL Server:desde la longitud y la latitud hasta el tipo de datos geométricos

Tiene una geometría, que almacena una forma en geometría euclidiana, y desea asociarle un punto en el globo, representado por una latitud y una longitud, para ver si está dentro. Esto no funcionará debido a la forma en que SQL almacena los datos. Probablemente necesite usar tipos de datos geográficos para verificar esto:la latitud y la longitud son puntos en una esfera (en realidad, datos geodésicos, ya que la Tierra no es exactamente una esfera).

Para obtener más información sobre por qué son diferentes, consulte esta explicación de microsoft . También esta respuesta en stackoverflow:GEOMETRÍA y GEOGRAFÍA diferencia SQL Servidor 2008

Para convertir sus datos de geometría a geografía, pruebe:Geografía::STGeomFromText(cast(GeomCol as varchar(max)), 4326)

Entonces puedes usar STIntersects método, documentado por microsoft aquí .