代码之家  ›  专栏  ›  技术社区  ›  David Pfeffer

消除SQL Server spatial或OpenLayers中重叠行的歧义?

  •  1
  • David Pfeffer  · 技术社区  · 14 年前

    Geography 列类型。)

    我使用OpenLayers在OpenStreetMap层上显示这些公交线路。

    在公共汽车路线重叠的情况下,当前除了顶部路线外,您什么也看不到。我试过在线条上使用透明,但看起来不太好。

    在OpenLayers或SQLServerSpatial中,有没有一种方法可以将重叠的行稍微移动(但保持平行)以使它们都可见?如果没有内置的东西来处理这个问题,是否有一个标准的算法来完成这个任务?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Peter Radocchia    14 年前

    SQL Server Spatial Tools 有方法, ShiftGeometry ,这将改变 几何学 (不是地理)超过给定的X和Y值。

    因此,对于每个连续的地理位置:

    1. 转换为几何体
    2. 缓冲并与所有先前处理的线相交
    3. 将相交线按适当的X和Y值倾斜
    4. 大口大口大口地把角落重新连在一起(??)
    5. 重组展示

    或者,与其改变路线,不如让它们长胖:

    1. 缓冲区足以检测交叉点
    2. 与以前处理过的形状相交
    3. 再次缓冲,足够在前一个下可见为一个更胖的形状(--多少??)
    4. 与原始形状合并

    OpenLayers可能对此有所帮助。如果没有,它可能有更好的原语来完成它。在SQL Server上,它将非常占用CPU。交叉点并不便宜,您将很快需要执行 许多 交叉点的数量。