Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server – Von Längen- und Breitengraden zum Geometriedatentyp

Sie haben eine Geometrie, die eine Form in der euklidischen Geometrie speichert, und Sie möchten einen Punkt auf dem Globus, dargestellt durch Breiten- und Längengrad, damit verknüpfen, um zu sehen, ob er sich darin befindet. Dies wird aufgrund der Art und Weise, wie SQL die Daten speichert, nicht funktionieren. Sie müssen wahrscheinlich Geographie-Datentypen verwenden, um dies zu überprüfen - Breiten- und Längengrad sind Punkte auf einer Kugel (Eigentlich geodätische Daten, da die Erde nicht wirklich eine Kugel ist.)

Weitere Informationen zu den Unterschieden finden Sie in dieser Erklärung von Microsoft . Auch diese Antwort auf Stackoverflow:GEOMETRY and GEOGRAPHY difference SQL Server 2008

Um Ihre Daten von Geometrie in Geografie umzuwandeln, versuchen Sie:Geography::STGeomFromText(cast(GeomCol as varchar(max)), 4326)

Dann können Sie die STIntersects verwenden Methode, dokumentiert von Microsoft hier .