SQL Geographie Punkt innerhalb polygon-keine Rückgabe von true auf STIntersect (aber gibt true zurück, mit Geometrie)
Will ich nicht zurückgreifen, die bei der Umwandlung meiner Daten Geografie geometrie nur so ist es true zurück, im STIntersect.
Hier ist der code, der in SQL:
DECLARE @point GEOGRAPHY = GEOGRAPHY::Point(1, 1, 4326)
DECLARE @polygon GEOGRAPHY = GEOGRAPHY::STGeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))', 4326)
SELECT @polygon.STIntersects(@point), @point.STIntersects(@polygon)
Folgende false (0) zurück, aber wenn ich verwenden:
DECLARE @point GEOMETRY = GEOMETRY::Point(1, 1, 4326)
DECLARE @polygon GEOMETRY = GEOMETRY::STGeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))', 4326)
SELECT @polygon.STIntersects(@point), @point.STIntersects(@polygon)
Gibt es true zurück, ist es etwas, was ich bin fehlt? Alle die ich kenne die Geographie ist eine 3D-Ebene und die geometrie ist eine flache map, jedoch bin ich mit der Erde für die Berechnung, wenn der Punkt im polygon.
PS: Es funktioniert nicht so gut mit STContains, STWithin, STOverlaps
Mithilfe von Microsoft SQL Server 2012
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies funktioniert:
Müssen Sie vorsichtig sein, mit der "Richtung", in der Sie beschreiben ein polygon für
geography
- betrachten ein polygon definiert als ein Kreis um den äquator - haben Sie angeben möchten der nördlichen Hemisphäre oder im Süden?Sehen hier: