Используя SQL Server 2012, следующий запрос продолжает говорить мне, что точка, которую я ищу, не находится внутри многоугольника, который я использую, хотя я знаю, что это так. Используя те же данные в QGIS 2.2.0, я ясно вижу, что точка находится внутри многоугольника (скриншот).
DECLARE @polygon GEOGRAPHY = GEOGRAPHY::STPolyFromText('POLYGON ((-111.0498046875 33.966142265597391, -110.9124755859375 33.472690192666633, -110.94268798828125 32.983324091837417, -111.7364501953125 32.680996432581921, -112.587890625 32.731840896865656, -113.0657958984375 33.307577130152978, -112.9010009765625 33.811102288647007, -112.32147216796875 34.1890858311723, -111.4453125 34.129994745824717, -111.0498046875 33.966142265597391))', 4326);
DECLARE @point GEOGRAPHY = GEOGRAPHY::STPointFromText('POINT (-112.0685317 33.4491407)', 4326);
SELECT @point.STIsValid() AS [PointIsValid], --True
@polygon.STIsValid() AS [PolygonIsValid], --True
@point.STWithin(@polygon) AS [PointWithinPolygon], --False
@point.STIntersects(@polygon) AS [PointIntersectsPolygon], --False
@polygon.STContains(@point) AS [PolygonContainsPoint]; --False
Что мне нужно сделать, чтобы запрос сказал мне, что точка находится в многоугольнике? Я видел, что некоторые результаты поиска говорят о «направлении», но я понятия не имею, как его указать. Координаты получаются из API Google Maps JavaScript и сохраняются в базе данных с помощью Entity Framework 6.1.