如何使用
动态分段的使用方法:
本节以长春市道路的数据为例,根据某一时刻的某些道路路段出现拥堵和车辆较多现象, 利用动态分段技术在客户端实时动态显示出道路的路况(拥挤/缓行/畅通), 以提示驾驶人员避免进入拥堵路段,选择合适的行驶路线。
数据的制作及发布
以长春示范数据为例, 在 SuperMap iDesktop产品中演示动态分段所需数据(包括:路由数据集和点/线事件表)的制作过程,如下所示:
图1 数据制作流程
首先导入原始线数据表,给此数据表添加新的字段路由 ID(RouteID),利用新的线数据表生成路由数据集。
操作方法:“分析-动态分段-点/线数据集->路由数据集”,各参数设置如下图所示:
图2 生成路由数据集
利用步骤1生成的路由数据集制作相应的事件表。其中,生成事件表有两种方式:一种是人工建立一个属性表,添加路由标识字段和其他属性字段,并输入相应的属性信息来生成事件表。这种方式虽然简单但往往需要耗费较多的人力物力;另一种方式是通过点或线空间数据和路由数据来自动生成事件表。本示例采用的是第二种方式,方法如下:
点击”分析-动态分段-创建事件表”功能创建线事件表,参数设置如下:
图3 创建事件表
这个步骤会根据提供的线事件数据集生成事件表,系统会根据事件的位置, 自动计算出这些事件位于哪条路段上,以及起止 M 值等信息, 即结果事件属性表中会有 RouteID、LineMeasureFrom、LineMeasureTo 等字段; 另外,可以自己手动建立事件类型字段。
本示例在创建事件表完成之后,手动创建一个文本字段(TrafficStatus), 描述事件类型字段,其属性值有:拥堵/畅通/缓行。
对生成的线事件表中的字段进行设置,用户通过自己设置事件表参数, 可以将事件表中的属性,通过创建的线事件,添加到地图窗口,具体设置进行如下:
图4 设置事件表
至此,参与动态分段的路由数据集和事件表数据准备完毕。保存此工作空间,并发布成空间分析服务。本专题使用的服务为 SuperMap iServer 8C, 具体发布方法请参见 iServer Java 8C 的帮助文档。
第一步,设置数据返回选项,需要设置的属性属性包括 expectCount、dataset、deleteExistResultDataset、dataReturnMode。如下所示:
AS | 拷贝代码 |
---|---|
|
第二步,设置动态分段参数,需要设置的属性包括 routeTable、routeIDField、eventTable、eventRouteIDField、 measureField、measureStartField、measureEndField、measureOffsetField、errorInfoField、dataReturnOption。如下所示:
AS | 拷贝代码 |
---|---|
|
动态分段服务对象,用于将客户端设置的动态分段分析服务参数(parameters)传递给服务端, 并接收服务端返回的动态分段分析结果数据。当分析成功时,将触发 GenerateSpatialDataEvent.PROCESS_COMPLETE 事件。用户可以通过两种方式获取分析结果:(1) 通过 AsyncResponder 类获取(推荐使用);(2)通过监听 GenerateSpatialDataEvent.PROCESS_COMPLETE 事件获取。本例采用第一种方式获取,如下所示:
AS | 拷贝代码 |
---|---|
|
若分析成功,则从服务端获得动态分段空间数据,并在客户端将空间数据中的路况信息以专题图的形式展现;若分析不成功,显示失败信息,如下所示:
AS | 拷贝代码 |
---|---|
|
将长春路况单值专题叠加在地图上显示, 效果图如下,其中红色代表“拥堵”、黄色代表“缓行”、绿色代表“畅通”。
图5 效果展示