小编Mik*_*get的帖子

当预期为 0 时,MSSQL Geography STIntersects 返回 1

我遇到了一个无法解释的 MSSQL 地理问题。假设我在数学上受到挑战,但似乎以下点不应与以下多边形相交:

DECLARE @t_point geography;  
DECLARE @t_polygon geography;
set @t_polygon = geography::STPolyFromText('POLYGON((1 1, 5 5, 5 0, 1 1))', 4326);
set @t_point = geography::Point(0, 0, 4326);


select
  @t_polygon.STAsText(), 
  @t_point.STAsText(),
  @t_point.STIntersects(@t_polygon), 
  @t_polygon.STIntersects(@t_point);
Run Code Online (Sandbox Code Playgroud)

但是,当我执行此操作时,会得到以下结果:

POLYGON ((1 1, 5 5, 5 0, 1 1))  POINT (0 0) 1   1
Run Code Online (Sandbox Code Playgroud)

最后两列都是 1,我期望为 0。空间中 0,0 处的点如何与不接触或包含 0,0 的多边形相交?

-1, -1 与 100, 100 具有相同的行为。

即使我将点更改为完全不同空间中的多边形,MSSQL 也会说它们相交。

set @t_polygon = geography::STPolyFromText('POLYGON((10 10, 50 50, 50 10, 10 10))', 4326);
set @t_point = geography::STPolyFromText('POLYGON((1 1, 5 …
Run Code Online (Sandbox Code Playgroud)

sql-server spatial

6
推荐指数
1
解决办法
293
查看次数

标签 统计

spatial ×1

sql-server ×1