Неожиданные результаты при работе с пространственными данными в SQL Server

Рассмотрим следующий 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 (истина).

Я чувствую, что есть что-то, что я упускаю фундаментально. Если кто-то может объяснить, я был бы очень признателен.


person Jason Richmeier    schedule 27.03.2018    source источник
comment
Этот пост мне помог: в многоугольнике"> stackoverflow.com/questions/11054149/   -  person user3254766    schedule 27.03.2018


Ответы (1)


Не получив ответов на этот вопрос, мы разместили вопрос на Reddit и получили там ответ с объяснением проблемы. Этот пост можно просмотреть здесь.

person Jason Richmeier    schedule 30.03.2018