基于Mapbox的矢量瓦片地图制图介绍
2018-05-08冰包玲玲关
□ 解 冰包玲玲关 颖
(1.黑龙江第三测绘工程院,黑龙江 哈尔滨 150000;2.北京星球时空科技有限公司,北京 100101)
0.引言
网络地图服务是近年来通过国际互联网提供的一种主流地理信息服务模式[1]。瓦片地图技术是网络地图服务时代的主流技术。早期的栅格瓦片地图在地理信息系统中数据调度上具有显著的优势,基于金字塔模型缓存数据,减少网络传输,提高数据调度速度[2]。但栅格瓦片在空间分析及前端交互等方面不能够完全满足用户需求。因此,互联网地图服务领域引深出了矢量瓦片技术,矢量瓦片是一种高性能的格式,在设置样式、输出格式及交互方面更加灵活。
总部位于美国的Mapbox公司基于Google ProtocolBuffers制定的开源矢量瓦片数据标准,MAPBOXVECTORTILESPECIFICATION是目前较为通用的矢量瓦片数据标准,已被多个公司和组织采用[3]。基于Mapbox技术机制和体制搭建矢量瓦片服务框架,在数据请求及传输方面可以减少网络传输量,显著提高了网络地图的响应速度,同时客户端能够更快、更灵活地渲染[4]。基于开源技术的Mapbox技术体制可以方便地实现本地化部署,解决面向对象的行业内部地图服务,满足各行业内部位置服务、信息管理需求,确保数据资源保密的同时实现更高的价值。
1.Mapbox矢量地图技术
Mapbox提供了一个强大的在线地图制作环境,包含大量的地图制图工具,从细粒度对象到粗粒度对象所涉及领域很广。用户可申请账户线上制图,也可下载安装相关工具本地部署。Mapbox 矢量瓦片默认的大地坐标系为WGS-84,投影方式为球面墨卡托(WebMercator),瓦片编号采用 Google瓦片方案[5]。因此,Mapbox矢量瓦片的大地坐标系、投影坐标系、像素坐标系和瓦片坐标系与Google栅格瓦片一致。各缩放级别下瓦片的数量和单个瓦片代表的空间大小相同。矢量瓦片的数据组织参照栅格瓦片的数据组织模型,构建金字塔模型。
1.1 瓦片数据组织方法
Mapbox矢量瓦片数据采用分包组织方法进行数据组织,矢量数据分包切片有助于数据管理,通过建立相应地数据索引,能够实现所需数据更好、更快、更有效地调度,提高数据实时渲染速度,大大减小了无效数据的传输,有效地解决矢量数据的多尺度、大存储、多形态等问题。
数据组织可分为3个层次:(1)分级划分规则的确定。(2)地图表达范围内的瓦片数据集组织模型。(3)单个瓦片内要素的组织模型[4]。为减小数据量,根据数据精度及渲染要求,合理设置分级数据组织包,矢量数据渲染过程中低级别至高级别过渡时会逐级增加必要要素,直至显示所需的全部要素为止,需要将数据分级划分组织,低级别数据适当地进行简化处理,实现数据合理规范化的组织方式。
瓦片数据集组织模型可通过自定义矢量瓦片的大地坐标系、投影方式和瓦片编号方案实现任意精度、任意空间位置与矢量瓦片的对应关系[6]。单个矢量瓦片主要存储多个GeoJSON格式图层,对应图层内部包含其属性信息、几何信息。每块矢量瓦片至少要包含一个图层,每个图层至少要包含一条要素信息[4]。
1.2.数据存储方法
Mapbox数据存储采用SQLite数据库,SQLite数据库是一款应有安全型的轻型数据库,遵守ACID的关系型数据库管理系统,它是一个嵌入式库,是一个实现零配置、无服务端和事务功能的SQL数据库引擎,在广泛领域被应用[7]。采用 SQLite数据库是因为其支持 Windows、Linux等多种主流的操作系统,占用的内存非常少,同时能够跟多种程序语言相结合,处理速度也非常快。Mapbox公司制定了一种公开的瓦片管理和存储规范—MBTiles[4]。MBTiles规定将生成的瓦片数据存储在一个SQLite数据库中,形成一个MBTiles文件,即一个瓦片数据集,实现存储空间的集约化[5]。
1.3.地图渲染方法
Mapbox提供了浏览器渲染引擎(MapboxGL JS)和移动终端渲染引擎(MapboxGLNative)[8]。Mapbox前端渲染通过MapboxGLJS实现,MapboxGLJS是一个JavaScript库,使用Web GL渲染交互式矢量瓦片地图和栅格瓦片地图,渲染性能高。它能够解析各种来源的矢量数据,然后在客户端实时渲染生成带有几何图形、文字标注、图示符号3D场景地图[9]。MapboxGLJS能够渲染大数据量的地图要素,拥有流畅的交互以及动画效果,可以显示立体地图,是一款十分优秀的WebGIS开发框架[10]。
2.结束语
本文针对矢量地图技术进行了简要阐述,Mapbox是个性化的地图载体,具有高效率、多样性等特点,未来在大数据处理上会有更加突出的表现,实现样式配置文件优化、操作简单化。
图1 基于Mapbox地形图示例
基于Mapbox矢量瓦片制图系统可支持多类型地图制图,例如导航图、地形图、海航图等的制作。实践证明,Mapbox技术可满足对于样式、符号要求较低的导航图类型地图的制作,但是对于地形图这种比较复杂的地图来说,其现有技术存在一定的不足。图1为地形图配制效果,在制图过程中对于简单类型的图式符号能够满足制图要求,但对于复杂符号的表达暂不能实现。例如地形图中注记显示、干沟显示、面填充被分割、等高线注记显示、电力线显示、隧道显示都存在不同程度的不适应性。
针对上述问题,可充分利用Mapbox的开源特性,在数据采集、数据预处理环节,有针对性地进行数据采集方法设计、数据结构设计和二次开发,通过算法、软件优化等技术层面解决样式配置问题,实现个性化、标准化的多重地图表达,满足地图多样化显示,样式配置更加灵活多样的需求。
参考文献:
【1】孙亚夫,姜莉莉.浅论网络地图服务技术应用框架与市场策略[J].电子地图技术与应用,2007,6(3):53-57.
【2】朱秀丽,周志武,李静,等.网络矢量地图瓦片技术研究[J].测绘通报,2016(11):106-109.
【3】SVTiles格式的矢量瓦[EB/OL].[2015-10-12].http://support.Supermap.com.cn:8090/iserver/help/html/Subject_introduce/Cache/MapCache/T.
【4】陈举平,丁建勋.矢量瓦片地图关键技术研究[J].地理空间信息,2017,15(8):44-47.
【5】MACWRIGHTT,WHITEW,KAEFERK,et al .MBTilesSpecification[EB/OL]. [2016- 02- 09].https:/ / github.com/mapbox /mbtiles- spec.
【6】孟旭霞,谭少华,等.嵌入式 WebServer中 SQLite访问技术的研究[J],微计算机信息,2008(24):95-97.
【7】王亚平,蒲英霞,刘大伟,等.基于TileStache的多源投影矢量数据瓦片生成技术研究[J],地理信息世界,2015(1):77-81.
【8】Mapbox.MapboxGLJS[EB/OL].https:/ / github.com/mapbox/mapbox- gl- js,2016- 12- 25/ 2016- 12- 30.
【9】Mapzen .Tangram [EB/OL].https:/ /mapzen.com/ documen- tation/ tangram/ Tangram- Overview/,2016- 12- 25/ 2016- 12- 28.
【10】何猛,蔡忠亮,任福.移动地图中的矢量瓦片组织方法研究[J].测绘地理信息,2015,40(2):74-76.