【问题标题】:SQL Server Geography - Find International Dateline and EquatorSQL Server 地理 - 查找国际日期变更线和赤道
【发布时间】:2021-11-28 13:24:15
【问题描述】:

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

我想到了以下逻辑,但不确定这样做是否正确。

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

  • 穿越赤道的地理:如果给定坐标的任何纬度

非常感谢任何帮助。

【问题讨论】:

    标签: sql sql-server spatial sqlgeography sqlgeometry


    【解决方案1】:

    我要做的是想出代表赤道和国际日期变更线的线串(分别)。从那里,您可以针对您的 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);
    

    【讨论】:

    • 您能否分享代表赤道和国际日期变更线的线串。非常感谢您的帮助。
    • @ReyanChougle - 我在回答中添加了附录以解决您的问题。
    猜你喜欢
    • 1970-01-01
    • 2014-02-20
    • 1970-01-01
    • 2022-08-03
    • 2021-08-16
    • 2021-12-30
    • 1970-01-01
    • 2011-10-08
    • 2010-11-20
    相关资源
    最近更新 更多