【问题标题】:Calculate the length of polylines in polygon (TSQL, Geometry)计算多边形中折线的长度(TSQL,几何)
【发布时间】:2019-03-06 09:39:22
【问题描述】:

我有很多折线(polyline)和一个多边形。折线可以以不同的方式与多边形相交:

  1. 没有相交(多边形外的折线)
  2. 没有交点(多边形中的折线)
  3. 一个交点(折线以多边形开始/结束)
  4. 多个交叉点(例如,折线可以从多边形开始,离开它然后返回内部......)

我需要计算多边形内所有折线的总长度。我正在使用 MSSQL 2016 Express 版本。可以只用 TSQL 完成吗?

【问题讨论】:

    标签: sql-server tsql spatial


    【解决方案1】:

    答案是是的 - TSQL 是turing-complete,这意味着你可以用它实现任何你想要的算法。它比 turing machine 更方便使用,但(可以说)不如具有成熟开发环境的 C# 等。

    【讨论】:

    • 我猜你的答案是完全正确的,但没有任何帮助。显然我应该问:“怎么能做到?”
    • 有点开玩笑 :) 也许您可以先尝试在 SQL 中实现逻辑,然后,如果您遇到有关使用 SQL 表达此类逻辑的特定问题,请询问帮助解决具体问题。
    • :) 我认为 1. - 3. 不是问题,但我对情况 4 有一个“逻辑”问题。如果我检查交叉点并且可以说其中四个我不知道如何(系统地)定义折线的哪些部分在多边形内...?
    • 最好将这个问题重新表述为纯几何问题,因为这与 SQL 没有任何关系?
    • STUnion 函数会返回多边形内折线的范围吗?
    猜你喜欢
    • 2018-01-17
    • 2019-05-14
    • 2023-01-26
    • 2014-09-05
    • 2021-08-27
    • 2012-08-25
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    相关资源
    最近更新 更多