【发布时间】:2021-11-28 13:24:15
【问题描述】:
在 SQL Server 中,我想查找地理是否与国际日期变更线和赤道相交/交叉。
我想到了以下逻辑,但不确定这样做是否正确。
-
跨越国际日期变更线的地理:如果国际日期变更线的坐标在给定的坐标范围内,那么它似乎越过了日期变更线
-
穿越赤道的地理:如果给定坐标的任何纬度
非常感谢任何帮助。
【问题讨论】:
标签: sql sql-server spatial sqlgeography sqlgeometry
在 SQL Server 中,我想查找地理是否与国际日期变更线和赤道相交/交叉。
我想到了以下逻辑,但不确定这样做是否正确。
跨越国际日期变更线的地理:如果国际日期变更线的坐标在给定的坐标范围内,那么它似乎越过了日期变更线
穿越赤道的地理:如果给定坐标的任何纬度
非常感谢任何帮助。
【问题讨论】:
标签: sql sql-server spatial sqlgeography sqlgeometry
我要做的是想出代表赤道和国际日期变更线的线串(分别)。从那里,您可以针对您的 geography 数据使用 STIntersects() 来测试相交。
附录 - 这里是赤道和国际日期变更线 (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);
【讨论】: