在 SQL 服务器中处理空间数据时出现意外结果

Unexpected Results When Working With Spatial Data In 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(真)。

我觉得好像我从根本上缺少了一些东西。如果有人能解释一下,我将不胜感激。

由于没有收到对此问题的任何回复,我们 post 在 Reddit 上编辑了问题并收到了解释该问题的回复。这个post可以查看here.