动态分段(线性参考)在SuperMap中的使用

      在实际应用中我们经常会听到下面的描述,如京哈高速公路沈阳段东20公里处发生车辆追尾事故,再如某某路东5公里到10公里塞车严重……。交通行业对道路信息位置是通过路桩及里程来记录的,而非实际的地理坐标;那么如何将这种描述或者里程值转为实际的坐标,准确的实现出来呢?本博客就以SuperMap中的动态分段功能进行相关介绍。
      说到动态分段,首先要先说一下线性参考,线性参考是一种采用沿具有测量值的线性要素的相对位置描述和存储地理位置的方法。
      广泛应用于公路、铁路、河流等线性特征的数据采集、公共交通系统管理、路面质量管理以及通讯和分配网络(如电网、电话线路、电视电缆、给排水管)模拟等领域。
SuperMap中线性参考的实现原理:
主要包含两个数据:路由数据、事件表;
      路由数据: 实际上是拥有两个特殊字段的Polyline:
       1、必须包含有M(Measure)值的Shape字段。拥有M值的Shape字段,不但能存储x,y(,z)坐标,还能够多存储一个M数值;
       2、必须包含有一个标识线段ID的字段,可以是Number或者Text类型。
路由数据不同于普通的Polyline数据,是因为它具有一个测量系统,而这个测量系统的原理就是,通过存储的M值以及该Polyline实际的ShapeLength,来动态插值出线上每一点的相对位置。比如一条公路数字化时,起点和终点分别表示该公路的起始桩号0公里和结束桩号100公里,该Polyline的实际长度 ShapeLength为2.00,那么该公路上40公里处的位置,就应该位于图上该Polyline的40%的位置,也就是ShapeLength为0.80的位置
      事件表:实际上是拥有2-3个特殊字段的表
      1、类似路由数据中RouteID的一个字段。用来存储与路由数据中哪个线对应。可以是Number或Text类型;
       2、根据事件类型不同而必须的1-2个字段:
      比如某某国道1900公里处发生了交通事故这个事件,需要一个Number类型的字段来记录1900这个相对位置,SuperMap中默认的是PointM;
      比如某某国道1850到1950公里段出现塞车严重这个事件,需要两个Number类型的字段来分别记录1850、1950这两个起止位置,SuperMap中默认的是FronM和ToM。
      除了上述两个字段要求,还可以有其他字段。事件表中一条记录就对应了需要在线上定位的一个点或一段距离,可以用来标识事件或属性等。

      SuperMap iDesktop中实现该功能的功能名称叫动态分段,采用的流程化的形式,整个流程主要包含:生成路由数据—校准路由—生成事件表—事件表融合(叠加)—生成空间数据—关系管理。
这里写图片描述

      1、 生成路由数据
      SuperMap iDesktop 提供了四种方式生成路由数据集,即线参考点刻度、线单字段、线双字段和线长度四种方式。
(1) 线参考点刻度:根据线数据和参考点数据生成路由数据集。
(2) 线单字段方式:这种方式根据线数据的一个属性字段来生成路由数据集,该字段记录了一个刻度值,将作为对应路由的终止刻度值(即一条路由的最后一个节点的 M 值),而该路由的起始刻度值(第一个节点的 M 值)为0,如果有中间节点,则其刻度值通过插值计算获得。此种方式生成的路由数据集的对象数与原有线数据集的对象数一致。
(3) 线双字段方式:此种方式根据线数据的两个属性字段生成路由数据集。这两个属性字段存储的刻度值分别作为路由的起始节点的刻度值和终止节点的刻度值。中间节点的刻度值通过插值计算得到。
(4) 线长度方式:此种方式将线对象的节点到起始节点的沿线长度作为每个节点的刻度值,从而生成路由数据集。显然,此种方式得到路由数据集中,每条路由的起始节点的刻度值为0,终止节点的刻度为线的长度。此种方式生成的路由数据集的对象数和原有线数据集的对象数一致。
2、 路由校准
      校准路由有利于保证测量值的正确性,从而保证事件被精确定位。使用可靠的参考点数据对路由数据的刻度值进行校准,是动态分段的重要步骤。例如,高速公路的路由数据,其刻度值为高速公路的里程信息,但是可能不够准确。经过测量人员的重新采集,沿高速公路每隔200米采集一个点,并通过仪器测量和记录对应的里程数。新采集的这批数据可以作为参考点数据,对已有的高速公路路由数据进行校正,以保证后续的动态分段结果的准确性。

3、 生成事件表
      如上面关于事件表的介绍,事件表就是一个包含路由标识字段、刻度字段外,以及描述事件的其他属性信息的一个属性表。事件表即可以手工输入信息,SuperMap也提供通过已有的点或者线数据集结合路由数据集生成事件表。
这里写图片描述

      生成事件表中主要需要设置的参数就是上面勾出的三个,(1)用于生成事件表的数据集,可以是点也可以是线数据。(2)对应的路由数据,需要保证上一条中的线或者点是在路由数据上的。(3)路由数据的标识字段。

4、 事件表融合和叠加
      事件表的融合是指对一个事件表进行的操作,将具有相同路由 ID 和融合字段值(该值用于标识哪些事件可以融合,具有相同融合字段值的事件才能融合)按照一定方式进行合并,可以达到去除冗余信息或依据不同属性信息对事件表进行拆分的目的。

5、 生成空间关系
      生成空间数据涉及三个角色:路由数据集、事件表和空间数据。应用程序会建立并存储三者之间的动态关系。由于事件表与空间数据存在一对一的关系,因此在生成空间数据时需要保证用于生成空间数据的事件不存在动态关系。如果该事件表已经存在于一个动态关系中,需要先删除该关系,然后再生成空间数据。

这里写图片描述

6、 关系管理
      生成空间数据涉及三个角色:路由数据集、事件表和空间数据。生成空间数据时,应用程序会自动建立并存储三者的动态分段关系,即根据路由 ID、刻度字段M等信息建立三者之间的对应关系。动态分段主要用于实现三个角色间的联动修改。需要注意建立动态分段关系的三个数据必须在同一数据源中。
      关系管理主要的功能就是可以对其中的数据进行关联修改。 直接在关系管理窗口中选中需要修改的一组动态分段关系,单击下面的编辑,动态联动可以分为以下几种情形:
1、 事件表的描述信息发生变化时,事件表与空间数据之间会发生联动。
2、 事件发生的路由位置发生变化时,事件表与空间数据之间发生动态变化。
3、 事件发生的路由改变时,空间数据会根据路由数据集的修改而发生变化,而修改空间数据时,对应的路由数据不会发生变化;事件表与空间数据之间发生联动修改。
如图:
编辑前:
这里写图片描述

编辑后:
这里写图片描述

      修改数据后关联数据会发生相应的变化,并能实时的显示在该窗口中。以适应事件的灵活应用。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值