1

我在表示公交路线的表中有记录,其中 SQL Server 空间列用于实际路线几何。(它们存储在Geography列类型中。)

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

在公交路线重叠的情况下,目前您只能看到顶部路线。我试过在线条上使用透明度,但看起来不太好。

有没有办法在 OpenLayers 或 SQL Server 空间中采用重叠线并稍微移动它们(但保持它们平行)以使它们全部可见?如果没有内置任何东西来处理这个问题,是否有标准算法来完成这个?

4

1 回答 1

2

SQL Server Spatial Tools有一个方法 ,ShiftGeometry它会将几何(不是地理)移动给定的 X 和 Y 量。

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

  1. 转换为几何
  2. 将多行字符串分解为行
  3. 缓冲并与所有先前处理的线相交
  4. 将相交线移动适合斜率的 X 和 Y 量
  5. 将角落重新组合在一起(??)
  6. 重组展示

或者,与其换行,不如让它们变肥:

  1. 缓冲区足以检测相交
  2. 与先前处理的形状相交
  3. 再次缓冲,足以在前一个下方显示为更胖的形状(--多少??)
  4. 与原始形状结合
  5. 显示带图层。

看起来很贵!

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

于 2010-09-05T05:16:49.077 回答