王雪影 王英杰 刘文斌 李聪旭
1.中国铁道科学研究院研究生部,北京 100081;2.中国铁道科学研究院集团有限公司电子计算技术研究所,北京 100081
GIS制图技术在空间数据信息化进程中不断提升,地图制图技术已经在诸多领域得到广泛应用。铁路地理信息数字化需求不断提升,铁路GIS地图追求更高效、更智能的要素可视化表达及应用方式。引入矢量瓦片技术旨在提供一种更为灵活的矢量数据提取、Web前端渲染的方法,并建立铁路地理信息图形符号库,结合可视化分层表达及应用,最大程度利用铁路GIS时空数据潜在价值、提升铁路地理信息地图绘制效率。
目前已有对矢量瓦片技术应用于铁路路网数据的初步探索,研究证明了其在解决数据可视化方面的可行性和高效性[1]。在铁路地理信息数据制图方面,中国国家铁路集团有限公司于2020年发布了Q∕CR 776—2020《铁路地理信息图形符号》,进一步明确了关于地理信息数据方面的制图标准,但在GIS地图的分层制图方面还需进一步研究。
铁路GIS空间数据以时空信息为基础,同时附带大量属性信息,因此高效提取其地理信息时空及语义特征、实现数据交互至关重要[2-6]。当前存在GIS图层矢量数据样式和属性信息的可编辑性与交互性不足,不同显示设备呈现清晰度不统一及分层表达渲染效率不高的问题。为解决当前铁路GIS空间分层表达技术存在的问题,本文提出将矢量瓦片技术引入铁路GIS空间数据切片过程中,用以提高信息交互能力,提升切片清晰度及流畅度,增强分层表达渲染效果。研究铁路各专业地理信息数据分层组织方式,建立铁路要素符号库系统,进而实现铁路GIS空间信息智能化表达,提升矢量数据分层表达性能[7]。
铁路GIS空间数据按图形分为点、线、面数据,分别表达车站、铁路线、铁路局管界等要素。部分图形要素具有点选需求,以矢量数据存储作为首选可视化技术。按功能分为地图基础底图、专题展示、交互应用等要素。地图基础底图为静态表达,适合以栅格数据存储;专题数据以专题数据集的形式存储,集成后综合表达;涉及交互应用的要素具有样式及属性提取、编辑等需求[8]。
铁路GIS空间数据具有较强的时空性、多源异构性、专业性等特性。
铁路GIS空间数据依据时间以及地理坐标系获取,使得铁路要素具备时空特性,为空间数据分析提供基础保障。原有技术无法满足特定区域任意比例尺下缩放展示的功能,铁路GIS空间表达突破了仅依照CAD图纸进行制图的状况,建立全局时空概念,增强空间变化能力,充分发挥时空属性效能,为决策者提供更全面的时空维度信息。
铁路GIS空间数据来源广、类别多,既有关系型与非关系型数据,又有分布于各类平台的离散型数据,造成数据多源异构。数据类型与属性信息尤为重要,符号库与分层表达技术都依赖对矢量数据与属性信息分类提取。铁路线路、车站、周边设备设施等空间数据具有大量描述性的属性信息,其中铁路要素依据中国国家铁路集团企业标准Q∕CR 520—2016《铁路地理信息分类与编码》制定的铁路空间要素编码规则,将铁路要素划分为基础、工务、供电、电务等专业,分为11个一级小类、28个二级小类、129个三级小类,制定划分为带有编码属性的铁路空间数据,能够为后期要素检索、定位等提供唯一字段信息。
铁路各专业数据内容差异较大,涵盖设计规划期、建设施工期、竣工验收期、运营期等全生命周期。设计规划期涉及桥梁、隧道、通信、信号、接触网、供电等;运营期涉及车务、机务、工务、电务、供电等专业。铁路设备设施的空间数据表达依据各专业定向绘制,满足铁路不同阶段全生命周期的业务需求。
矢量瓦片技术原理类似栅格切片,以构建金字塔的方式切割矢量数据,只不过切割的不是栅格图片,而是矢量数据的描述性文件[9]。
矢量数据图层切片存储形式可以呈现为:GeoJSON、TopoJSON、Mapbox Vector Tile及PBF。矢量瓦片中的瓦片以mvt格式存储,每个瓦片为256×256像素尺寸相同的正方形区域,根据由行号、列号、层级号组成的瓦片号(x,y,z)唯一标记矢量瓦片。其中x为瓦片的横向索引,起始位置为最左边,数值为0,向右加一递增;y为瓦片的纵向索引,起始位置为最上边,数值为0,向下加一递增;z为地图的级别,以Google为例,最上一级为0,向下依次递增。
MapBox矢量瓦片几何及属性信息存储为二进制PDF格式文件,将其解析后可获取矢量描述性文件。矢量要素点、线、面由经纬度转换成像素坐标,并通过计算其所在瓦片号,获取单个瓦片内像素坐标。因而数据结构紧凑精准,生成图形质量好,能提升地图信息检索与网络传输效率,实现较好的铁路空间数据表达效果。
矢量数据在服务器端完成切片,形成矢量瓦片,再传输至Mapbox GL,在客户端进行渲染表达。各互联网地图平台(高德地图、百度地图等)使用不同矢量瓦片切图工具制作的切片需要根据不同的规则进行渲染才能显示地图。为实现矢量瓦片跨平台的调用,可在服务器端与客户端间建立用于重新编码的微服务,将矢量瓦片格式转换后再进入数据传输流程。由于瓦片粒度小,信息接近无损,且前端可定制渲染样式,数据交互更灵活、加载速度更快、存储体积更小。矢量瓦片服务传输流程如图1所示。
图1 矢量瓦片服务传输流程示意
目前存在多种对矢量数据按照矢量瓦片格式进行切图的工具,根本上都遵循了矢量四叉树金字塔模型原理,如图2所示。
图2 四叉树金字塔模型示意
矢量瓦片的预生成将地图按照指定尺寸(多为256×256像素)和指定格式(GeoJSON、TopoJSON、PBF等)切成若干行和列的正方形图片,得到的地图切片一般也称为瓦片。选取范围需将全部GIS空间数据覆盖,该范围面即为第一层瓦片。切片过程由左上角开始对固定尺寸进行切图,每个瓦片尺寸大小相同。不同等级之间采用四叉树数据结构,图层放大一层,则原始的1个瓦片等分成4个瓦片,每层的瓦片数量TileCount=4ZoomLevel,ZoomLevel表示缩放等级,每层总像素是上一层的4倍。这种四叉树结构有助于切图和快速显示。
首先,获取铁路GIS空间数据原始矢量文件,将其按铁路专业分类后分别导入数据库形成包含铁路要素属性的矢量数据集,再参考现有铁路要素配图样式文件及符号库将矢量数据分层配图[10]。其次,矢量瓦片的生成都遵循矢量四叉树金字塔模型原理,依据分辨率划分层级,且矢量数据具有宏观至微观任意比例尺下无极缩放的特性。常见的全国范围铁路示意图通常制作为6级(1∶9 224 667.36)至18级(1∶2 257)切片缓存。切片后的矢量瓦片数据表格存储在服务器端,生成的矢量瓦片文件(GeoJSON、TopoJSON、PBF等)按图层等级存放在切片包中,建立基于OGC(Open Geospatial Consortium)标准的服务,并进行发布。上述流程见图3。
图3 矢量瓦片技术流程
根据用户交互时发出的请求,将覆盖范围内的矢量瓦片发送给客户端。客户端按照调用规则加载地图服务,叠加栅格影像进行展示,增加点选、框选后弹框显示铁路要素属性等功能,并修改样式文件实现前端渲染效果。以北京市高速铁路专题图为例,其渲染效果见图4。
图4 北京市高速铁路专题图
根据不同铁路业务需求,用户对可视化的需求方向及程度大不相同。各铁路专业利用铁路共享数据集集成各专业特有数据进行业务数据融合、制图展示。铁路GIS空间数据图层按照专题图类别、铁路各专业段设备设施、铁路通用数据集等维度进行组织与设计,使铁路要素图层具有可迁移性、通用性、专业性等优势。图层根据不同比例尺进行绘制,依据不同等级图层的可视化需求进行数据集成,在比例尺连贯缩放的基础上,每层所展示的要素种类、数量、样式随之改变,以业务需求驱动进行优化设计。
铁路GIS空间数据通常按照铁路专业、铁路局、重要铁路线等发布为不同地图服务。常使用的铁路地图服务以发布WMS(Web Map Service)动态服务为主,并可实现客户端编辑的WFS(Web Feature Service)服务。地图服务基于图层表达,6级(1∶9 224 667.36)至11级(1∶288 895.85)图层通常展示线路、车站、铁路局管界等铁路主干数据,11级(1∶288 895.85)至18级(1∶2 257)图层将桥梁、隧道、铁轨、轨枕、设备设施等铁路要素根据几何特征、语义筛选并参考铁路要素符号库进行分类表达。属性信息利用SQL语句查询后提取必要的属性字段,使用Maplex等高级智能标注拓展模块绘制,并在组织图层时进行冲突检测,并将关键图层置于顶层,最大限度避免要素信息覆盖。基于OGC标准的地图服务提供加载服务展示,获取数据空间及属性信息,根据属性查询要素等开发接口,高效地获取关键铁路要素信息,快速定位,综合分析,实现铁路专业人员查看铁路网覆盖情况、查询并定位各专业设备设施、计算分析要素属性、定制信息化模块等功能。
铁路专题图有中长期铁路线规划示意图、全国高速铁路专题图、全国货运车站专题图、铁路局专题图、京沪高速铁路专题图等业务类型。其中包括全国高速铁路线的单类要素专题图,铁路局的点线面、多专业结合的多类要素专题图,需根据业务需求动态制作、更新、维护要素数据集。对于铁路GIS空间关键要素,例如电务段专题图重点关注通信信号机,则制作一个信号机的独立图层,以图层文件格式存储,其携带的比例尺、符号系统、标注能够整体移植。对于相同地理坐标系的不同专题图(图5),在图层重构时,铁路各专业图层有机组合、多源异构数据动态融合。
图5 铁路专业矢量数据示意图
以京沪高速铁路为例,根据已有的各铁路专业(工务、供电、通信、信号、房建等)设备设施矢量数据,制作应用于京沪高速铁路全线运行维护阶段的空间分层表达可视化地图[11]。由于底图影像仅用于展示铁路周边环境,不需要具备与用户的交互能力,因此采用栅格瓦片技术将其切片,以图片格式进行存储(图6)。铁路GIS空间数据具有很强的交互需求,如设备设施属性信息定义展示、建立符号库表达矢量数据、筛选要素分类表达、按业务需求调整渲染样式,因此采用矢量瓦片技术,发布基于Mapbox矢量瓦片数据标准的切片服务,其空间坐标系为WGS-84。SpatialServer(PGRestAPI)作为服务器端,建立矢量瓦片数据索引文件;Mapbox GL JS作为客户端,调用矢量瓦片地图服务,将矢量瓦片输出至浏览器表达。
图6 栅格瓦片存储示意
相较于只能对地图数据进行一次渲染的栅格瓦片,矢量瓦片运用相同的金字塔切片模型可以实现用户对京沪高速铁路线路、车站等矢量数据地图样式进行动态修改,提升铁路GIS空间数据定制化程度。矢量瓦片与栅格瓦片对比见表1。使用OpenLayers3、Leaflet等工具调用矢量切片服务,获取以GeoJSON格式存储的矢量切片数据,通过设置Layer的Style属性即可进行样式编辑,实现了在矢量数据切片完成并缓存的基础上,获取GIS空间数据样式更改权。
表1 矢量瓦片与栅格瓦片对比
矢量瓦片将几何图形数据和属性信息生成在Feature属性中,包含x,y坐标及名称等属性信息。构建存放图形数据和属性的数据模型有利于提升矢量数据的查询效率。不同铁路专业的地图使用不同的数据模型。表格数据以矢量数据属性信息存储极大地增强了矢量数据查询的信息范围广度,提升查询结果广泛性、准确性。组合数据属性查询可进一步融合属性特征,明确搜索对象。
地图图层根据一定顺序叠放,矢量数据图层叠放至栅格影像底图上,实现多种类数据叠加表达,有利于在较为简洁、抽象的矢量数据表达的基础上丰富周围环境因素,增强场景表达(图7)。对周围环境建立更广范围内的影像认知,并结合设备设施属性信息展示,有利于铁路人员在铁路运行维护阶段更全面地确认各专业设备设施空间位置及情况。
图7 京沪高速铁路德禹特大桥工务段
1)矢量瓦片技术应用于铁路专题图提升了铁路GIS空间数据利用率及加载速率,增强属性信息应用表达,地图表达更流畅。
2)采用Mapbox GL JS在前端更改矢量数据样式可以更高效地满足地图可视化需求,提升用户体验,增强互动性。
3)以京沪高速铁路为例,实现了更加有效的建设期及维护期全线铁路专业要素分层表达模式,为工务段提供了有利于铁路、桥梁、隧道维修、养护工作的可视化铁路专题地图。
矢量切片技术应用于铁路GIS空间数据分层表达可实现更高效的地图图层表达及交互效果。今后将探索为铁路全周期、各专业业务提供更智能的空间数据信息化表达效果、共享铁路专题地图服务以及定制时空要素信息化应用技术。