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
.