前文《SuperMap iServer Java 6 动态分段概述》介绍了动态分段的一些概念:如事件表、事件、路由表、刻度值等,下面将使用Deskpro从清洗点线数据等原始、生成路由数据集、创建事件表、事件表生产空间数据三个步骤,给大家展示一下动态分段。
1、清洗点线数据
这步其实就是准备生成路由数据的点线数据,对数据主要有两点基本要求:
a、线是简单线,没有复杂线数据。
b、线数据中有个路由标示的字段,这个字段需要为数值型,可以用smid标示这个。如果是线长度或者线字段的话默认为smid,如果是线参考点刻度的话可以自己调整。
c、如果是线参考点刻度的话点刻度数据尽量要点数据在线上或者差距不是太大,而且点和线必须有共同的路由字段值
2、生成路由数据
路由数据在Deskpro中主要由线来生成,可以依据线长度、设置线的起始点和终止点的刻度、根据点数据刻度等三种方式,其他的一些细节调节可以参考刻度缩放因子、刻度偏移因子等参数,如下图-1
此处随便画几条线,然后用线长度生成路由数据集
图-2线数据集
操作方法:“分析-动态分段-点/线数据集->路由数据集”,各参数设置如图-1生成路由数据集所示。
3、创建事件表
创建一个点事件表,主要有两个字段,routeid标示这个事件发生在那条线路上,locate标示这个事件发生的里程值。
图-3点事件表
然后添加一个事件,比如在线路1上,里程22处。每条记录都对应一个事件。
4、事件表生成空间数据
第三步中已经生成了事件点,如何把它转为地图上的一点,快速定位出来呢?这就需要事件表生成空间数据。
图-4设置事件表
操作方法:“分析-动态分段-设置事件表”,各参数设置如图-4生成路由数据集所示。注意事件表及路由数据的路由标示字段相互对应routeid,然后点事件刻度字段为locate
图-5 事件点在地图上
注意:由于按照长度生成路由数据集中会生成一个字段名为routeid的字段,类型为长整形,所以新建事件表的时候也选择为长整形。
上面从清洗点线数据、生成路由数据集、创建事件表、事件表生成空间数据等几个步骤说明了一个动态分段的简单过程,后续文章将详细讨论