SQL Géographie point à l'intérieur du polygone de ne pas retourner vrai sur STIntersect (mais renvoie la valeur true à l'aide de la Géométrie)

Je ne veux pas de recourir, pour la conversion de ma géographie de données à la géométrie juste si elle retourne true en STIntersect.

Voici le code 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)

Le suivant renvoie la valeur false (0), mais si j'utilise:

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)

Elle renvoie true, est-il quelque chose que je suis absent? Tout ce que je sais est que la géographie est en 3D de l'avion et de la géométrie est un plat de la carte, cependant, je suis l'aide de la terre pour le calcul, si le point est dans le polygone.

PS: Il ne fonctionne pas aussi bien avec STContains, STWithin, STOverlaps

À l'aide de Microsoft SQL Server 2012

OriginalL'auteur MilkTea027 | 2013-12-18