在 SQL Server 中,我想查找地理是否与国际日期变更线和赤道相交/交叉。
我想到了以下逻辑,但不确定这是否是正确的方法。
跨越国际日期变更线的地理:如果国际日期变更线的坐标在给定的坐标范围内,那么它似乎穿越了日期变更线
穿越赤道的地理:如果给定坐标的任何纬度<= 0,那么它似乎穿越了赤道
非常感谢任何帮助。
在 SQL Server 中,我想查找地理是否与国际日期变更线和赤道相交/交叉。
我想到了以下逻辑,但不确定这是否是正确的方法。
跨越国际日期变更线的地理:如果国际日期变更线的坐标在给定的坐标范围内,那么它似乎穿越了日期变更线
穿越赤道的地理:如果给定坐标的任何纬度<= 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);