Рассмотрим следующий SQL:
DECLARE @g1 AS GEOGRAPHY;
DECLARE @g2 AS GEOGRAPHY;
DECLARE @g3 AS GEOGRAPHY;
SET @g1 = GEOGRAPHY::STGeomFromText('POLYGON ((-97.5 33.0, -97.5 34.0, -96.5 34.0, -96.5 33.0, -97.5 33.0))', 4326);
SET @g2 = GEOGRAPHY::STGeomFromText('POINT (-97.5 33.5)', 4326);
SET @g3 = GEOGRAPHY::STGeomFromText('POINT (-98.0 35.0)', 4326);
SELECT @g1.STIntersects(@g2);
SELECT @g1.STIntersects(@g3);
Я ожидаю, что первым результатом будет 1 (истина), поскольку точка (@g2) находится на линии прямоугольника. Однако я ожидаю, что вторым результатом будет 0 (ложь), поскольку точка (@p3) не находится рядом с областью (@p1). Однако оба результата равны 1 (истина).
Я чувствую, что есть что-то, что я упускаю фундаментально. Если кто-то может объяснить, я был бы очень признателен.