0

在 SQL Server 中,我想查找地理是否与国际日期变更线和赤道相交/交叉。

我想到了以下逻辑,但不确定这是否是正确的方法。

  • 跨越国际日期变更线的地理:如果国际日期变更线的坐标在给定的坐标范围内,那么它似乎穿越了日期变更线

  • 穿越赤道的地理:如果给定坐标的任何纬度<= 0,那么它似乎穿越了赤道

非常感谢任何帮助。

4

1 回答 1

0

我要做的是提出代表赤道和国际日期变更线的线串(分别)。从那里,您可以使用STIntersects()您的geography数据来测试交叉点。


附录 - 这里是赤道和国际日期变更线 (IDL) 的幼稚定义。赤道解决了似乎是 SQL Server 地理实现中关于对映点的技术限制,而 IDL 使用“经度 -180°”的简单但不正确的定义。

DECLARE 
    @e GEOGRAPHY = geography::STMLineFromText('MULTILINESTRING ((-179.9999 0, 0 0), (0 0, 179.9999 0))', 4326),
    @idl GEOGRAPHY = geography::STMLineFromText('MULTILINESTRING ((-180 0, -180 90), (-180 0, -180 -90))', 4326);
于 2021-10-11T22:21:53.707 回答