留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

一种顾及符号完整性的矢量瓦片地图改进方案

刘鹏程 许小峰 杨敏

刘鹏程, 许小峰, 杨敏. 一种顾及符号完整性的矢量瓦片地图改进方案[J]. 武汉大学学报 ● 信息科学版, 2022, 47(3): 455-462. doi: 10.13203/j.whugis20200033
引用本文: 刘鹏程, 许小峰, 杨敏. 一种顾及符号完整性的矢量瓦片地图改进方案[J]. 武汉大学学报 ● 信息科学版, 2022, 47(3): 455-462. doi: 10.13203/j.whugis20200033
LIU Pengcheng, XU Xiaofeng, YANG Min. An Improved Schema for Vector Tile Map Considering Symbol Integrity[J]. Geomatics and Information Science of Wuhan University, 2022, 47(3): 455-462. doi: 10.13203/j.whugis20200033
Citation: LIU Pengcheng, XU Xiaofeng, YANG Min. An Improved Schema for Vector Tile Map Considering Symbol Integrity[J]. Geomatics and Information Science of Wuhan University, 2022, 47(3): 455-462. doi: 10.13203/j.whugis20200033

一种顾及符号完整性的矢量瓦片地图改进方案

doi: 10.13203/j.whugis20200033
基金项目: 

国家自然科学基金 42071455

国家自然科学基金 41871377

中央高校自主科研项目 CCNU30106190454

数字制图与国土信息应用工程自然资源部重点实验室开放研究基金 ZRZYBWD201909

详细信息

An Improved Schema for Vector Tile Map Considering Symbol Integrity

Funds: 

The National Natural Science Foundation of China 42071455

The National Natural Science Foundation of China 41871377

Independent Research Project of the Central Universities CCNU30106190454

Digital Mapping and Land Information Application Engineering Open Research Fund Project of Key Laboratory of the Ministry of Natural Resources ZRZYBWD201909

More Information
  • 摘要: 在矢量瓦片地图中,跨网格的要素被分割成多个部分,常常造成点、线、面要素中非均匀符号在网格边界处的不连续,这样不仅影响视觉效果,还容易引发空间认知错误。在保持矢量瓦片数据和样式独立的基础上,提出使用预处理和实时绘制相结合的方法解决这类问题。通过分析不同要素符号在网格边界不连续的类型和原因,提取了不同类型的绘图辅助信息;将绘图辅助信息作为客户端绘图参数来调整瓦片内符号单元的初始位置,从而实现要素符号连续性表达。该方案的有效性在大比例尺地图配图实验中得到了证明。
  • 图  1  矢量瓦片地图边界图形问题

    Figure  1.  Graphic Problem Cross Vector Tile

    图  2  跨瓦片点要素符号丢失现象示意图

    Figure  2.  Diagram of Loss of Point Symbols Across Tiles

    图  3  点要素切片的策略

    Figure  3.  Diagram of Point Feature Slicing

    图  4  具有周期性质的线符号

    Figure  4.  Periodic Polyline Symbol

    图  5  线要素在矢量瓦片地图边界存在的符号化问题类型

    Figure  5.  Types of Symbolization Problems with Line Features at Vector Tile Map Boundary

    图  6  线要素切片范围

    Figure  6.  Slice Extent of Line Feature

    图  7  面要素内部符号填充

    Figure  7.  Internal Filling Symbol of Polygon Features

    图  8  点要素符号化方法

    Figure  8.  Point Feature Symbolization Method

    图  9  矢量瓦片地图中虚线符号绘制方法

    Figure  9.  Drawing Dashed Symbols in Vector Tile Maps

    图  10  线连接绘制方法

    Figure  10.  Connection Method of Polyline

    图  11  面要素符号化方法

    Figure  11.  Polygon Feature Symbolization

    图  12  线图元填充原理

    Figure  12.  Line Primitive Filling Principle

    图  13  线图元填充的多边形

    Figure  13.  Filling Polygons with Line Unit

    图  14  原型系统应用案例

    Figure  14.  Prototype System Application Case

  • [1] Mapbox. Vector Tile Specification[EB/OL]. (2014-04-13)[2019-12-22]. https://docs.map-box.com/vector-tiles/specification
    [2] Mapbox. Mapbox Style Specification[EB/OL]. (2019-07-03)[2019-12-09]. https://docs.mapbox.com/mapbox-gl-js/style-spec
    [3] Mapbox. Mapbox GL JS API[EB/OL]. (2019-03-23)[2019-12-22]. https://docs.map-box.com/mapbox-gl-js/api/
    [4] 韩超伟, 史绍雨, 韩晓冬, 等. 一种稠稀矢量瓦片的构建方法[J]. 测绘科学技术学报, 2018, 35(6): 627-632 https://www.cnki.com.cn/Article/CJFDTOTAL-JFJC201806015.htm

    Han Chaowei, Shi Shaoyu, Han Xiaodong, et al. Construction Method of Dense-Sparse Vector Tile[J]. Journal of Geomatics Science and Technology, 2018, 35(6): 627-632 https://www.cnki.com.cn/Article/CJFDTOTAL-JFJC201806015.htm
    [5] 朱笑笑, 张丰, 杜震洪, 等. 顾及要素空间分布特征的稠疏矢量瓦片构建方法研究[J]. 浙江大学学报(理学版), 2017, 44 (5): 591-598 https://www.cnki.com.cn/Article/CJFDTOTAL-HZDX201705015.htm

    Zhu Xiaoxiao, Zhang Feng, Du Zhenhong, et al. A Method of the Dense-Sparse Vector Tile Generation Accounting for the Spatial Distribution of Features[J]. Journal of Zhejiang University (Science Edition), 2017, 44(5): 591-598 https://www.cnki.com.cn/Article/CJFDTOTAL-HZDX201705015.htm
    [6] Bacik V. Possibilitties of TopoJSON Format and D3 Library by the Visualization of Geodata in the Internet[J]. Geographia Cassoviensis, 2015, 9(1): 5-16
    [7] Popić S, Pezer D, Mrazovac B, et al. Performance Evaluation of Using Protocol Buffers in the Internet of Things Communication[C]//International Conference on Smart Systems and Technologies, Osijek, Croatia, 2016
    [8] Zhou X D, Ai T H, Meng N N, et al. A PDF Tile Model for Geographic Map Data[J]. ISPRS International Journal of Geo-Information, 2019, 8(9): 373 doi:  10.3390/ijgi8090373
    [9] Wan L, Huang Z, Peng X. An Effective NoSQL-Based Vector Map Tile Management Approach[J]. ISPRS International Journal of Geo-Information, 2016, 5(11): 215 doi:  10.3390/ijgi5110215
    [10] 王梅欣. 分布式矢量瓦片生产与访问系统的设计与实现[D]. 西安: 西安电子科技大学, 2016

    Wang Meixin. The Design and Implementation of the Distributed Vector Tile Generation and Access System[D]. Xi?an: Xidian University, 2016
    [11] Hu W, Li L, Wu C, et al. A Parallel Method for Accelerating Visualization and Interactivity for Vector Tiles[J]. PLoS One, 2019, 14(8): e0221075 doi:  10.1371/journal.pone.0221075
    [12] Netek R, Masopust J, Pavlicek F, et al. Performance Testing on Vector vs. Raster Map Tiles: Comparative Study on Load Metrics[J]. ISPRS International Journal of Geo-Information, 2020, 9(2): 101 doi:  10.3390/ijgi9020101
    [13] Li L, Hu W, Zhu H, et al. Tiled Vector Data Model for the Geographical Features of Symbolized Maps[J]. PLoS One, 2017, 12(5): e0176387 doi:  10.1371/journal.pone.0176387
    [14] Cavazzi S, Ingensand J, Jacovella-St-Louis J, et al. OGC Testbed 13: Vector Tiles Engineering Report[EB/OL]. (2018-02-22)[2019-12-22]. http://www.opengis.net/doc/PER/t13-DS001
    [15] 俞丽君. 适应多尺度显示的矢量瓦片并行化构建方法[D]. 杭州: 浙江大学, 2018

    Yu Lijun. A Parallel Generation Method of Vector Tiles for Multi-Scale Visualization[D]. Hangzhou: Zhejiang University, 2018
    [16] Antoniou V, Morley J, Haklay M M. Tiled Vectors: A Method for Vector Transmission over the Web[C]//International Symposium on Web and Wireless Geographical Information Systems, Maynooth, Ireland, 2009
    [17] Gaffuri J. Toward Web Mapping with Vector Data[C]//International Conference on Geographic Information Science, Berlin, Heidelberg, 2012
    [18] 王刚. 顾及要素特征的层次增量分块矢量数据组织与高效网络传输研究[D]. 武汉: 武汉大学, 2011

    Wang Gang. Incremental Hierachical Partitioned Organization and High-Performance Network Transimission of Vector Data Considering Feature Characteristics[D]. Wuhan: Wuhan University, 2011
    [19] 陈泰生, 闾国年, 吴明光. GIS点状符号共享研究[J]. 武汉大学学报·信息科学版, 2011, 36(10): 1144-1148 https://www.cnki.com.cn/Article/CJFDTOTAL-WHCH201110002.htm

    Chen Taisheng, Lü Guonian, Wu Mingguang. Research on GIS Point Symbol Sharing[J]. Geomatics and Information Science of Wuhan University, 2011, 36(10): 1144-1148 https://www.cnki.com.cn/Article/CJFDTOTAL-WHCH201110002.htm
    [20] 孙家广, 胡事民. 计算机图形学基础教程[M]. 2版. 北京: 清华大学出版社, 2012

    Sun Jiaguang, Hu Shimin. Basic Course of Computer Graphics[M]. 2nd ed. Beijing: Tsinghua University Press
    [21] Sutherland I E, Hodgman G W. Reentrant Polygon Clipping[J]. Communications of the ACM, 1974, 17(1): 32-42 doi:  10.1145/360767.360802
    [22] 尹章才, 李霖, 龙毅, 等. 基于分层的面状地图符号设计[J]. 武汉大学学报·信息科学版, 2004, 29(12): 1111-1114 https://www.cnki.com.cn/Article/CJFDTOTAL-WHCH200412017.htm

    Yin Zhangcai, Li Lin, Long Yi, et al. Design of Area Map Symbols in Layers[J]. Geomatics and Information Science of Wuhan University, 2004, 29(12): 1111-1114 https://www.cnki.com.cn/Article/CJFDTOTAL-WHCH200412017.htm
    [23] 李青元, 李洪省, 刘皓晨. GIS符号库数据模型抽象及其交换格式研究[J]. 武汉大学学报·信息科学版, 2008, 33(6): 565-568 https://www.cnki.com.cn/Article/CJFDTOTAL-WHCH200806005.htm

    Li Qingyuan, Li Hongsheng, Liu Haochen. GIS Symbolic Library General Data Model and Data Exchange Format XML Schema[J]. Geomatics and Information Science of Wuhan University, 2008, 33 (6): 565-568 https://www.cnki.com.cn/Article/CJFDTOTAL-WHCH200806005.htm
  • [1] 何列松, 刘海砚, 黄利民, 吴芳华, 魏斌.  利用POM和DLG数据的矢量地理PDF地图快速制作 . 武汉大学学报 ● 信息科学版, 2021, 46(7): 1081-1089. doi: 10.13203/j.whugis20190229
    [2] 刘万增, 陆辰妮, 霍亮, 吴晨琛, 赵婷婷, 朱秀丽.  最优信息熵约束的居民地点状要素选取方法 . 武汉大学学报 ● 信息科学版, 2021, 46(8): 1178-1185. doi: 10.13203/j.whugis20190305
    [3] 侯翔, 闵连权, 唐立文.  定位篡改实体组的矢量地图脆弱水印算法 . 武汉大学学报 ● 信息科学版, 2020, 45(2): 309-316. doi: 10.13203/j.whugis20170404
    [4] 俞丽君, 张丰, 刘仁义, 杜震洪.  一种面向矢量瓦片高效构建的空间索引方法 . 武汉大学学报 ● 信息科学版, 2020, 45(10): 1633-1641. doi: 10.13203/j.whugis20180032
    [5] 郭庆胜, 黄鹤声, 王琳, 刘远刚.  顾及制图规则的地图多要素协同移位方法 . 武汉大学学报 ● 信息科学版, 2018, 43(5): 726-731. doi: 10.13203/j.whugis20160362
    [6] 李雅彦, 杜清运, 蔡忠亮, 张磊, 张铭晓.  一种采用PostScript成像模型的高质量地图制图方法 . 武汉大学学报 ● 信息科学版, 2018, 43(3): 379-384. doi: 10.13203/j.whugis20150139
    [7] 曾兴国, 任福, 杜清运, 唐岭军.  公众参与式地图制图服务的设计与实现 . 武汉大学学报 ● 信息科学版, 2013, 38(8): 950-953.
    [8] 胡玮, 陶伟东, 苑振宇, 王结臣.  一种Voronoi图的扫描地图矢量化方法 . 武汉大学学报 ● 信息科学版, 2013, 38(4): 470-474.
    [9] 孙鸿睿, 李光强, 朱建军, 施永胜.  改进的差值扩张和平移矢量地图可逆水印算法 . 武汉大学学报 ● 信息科学版, 2012, 37(8): 1004-1007.
    [10] 王超, 王伟, 王泉, 秦前清.  一种空间域矢量地图数据盲水印算法 . 武汉大学学报 ● 信息科学版, 2009, 34(2): 163-165.
    [11] 杨必胜, 李清泉.  基于簇模型的矢量地图数据的高效压缩方法 . 武汉大学学报 ● 信息科学版, 2008, 33(3): 265-268.
    [12] 杨勇, 李霖, 王红, 朱海红.  基于国家基础地理信息数据的地图制图系统 . 武汉大学学报 ● 信息科学版, 2008, 33(3): 261-264.
    [13] 姜文亮, 李霖, 应申.  计算机地貌晕渲效果增强方法研究 . 武汉大学学报 ● 信息科学版, 2007, 32(12): 1176-1179.
    [14] 马桃林, 顾翀, 张良培.  基于二维矢量数字地图的水印算法研究 . 武汉大学学报 ● 信息科学版, 2006, 31(9): 792-794.
    [15] 姜永发, 张书亮, 兰小机, 闾国年.  长对角线法实现GIS中矢量地图面状地物汉字注记的自动配置 . 武汉大学学报 ● 信息科学版, 2005, 30(6): 544-548.
    [16] 李伟生.  矢量电子地图的线目标在线简化 . 武汉大学学报 ● 信息科学版, 1997, 22(2): 146-150.
    [17] 何宗宜.  视错觉在地图制图中应用的研究 . 武汉大学学报 ● 信息科学版, 1991, 16(3): 22-30.
    [18] 张克权, 祝国瑞.  试论地图制图学的理论体系 . 武汉大学学报 ● 信息科学版, 1990, 15(2): 28-33.
    [19] 张爱宁.  矢量网格法实现多边形地图叠置的前提论证 . 武汉大学学报 ● 信息科学版, 1988, 13(2): 57-69.
    [20] 黄伟.  三维地图的机助制图试验 . 武汉大学学报 ● 信息科学版, 1982, 7(1): 91-100.
  • 加载中
图(14)
计量
  • 文章访问数:  331
  • HTML全文浏览量:  126
  • PDF下载量:  54
  • 被引次数: 0
出版历程
  • 收稿日期:  2020-03-08
  • 刊出日期:  2022-03-05

一种顾及符号完整性的矢量瓦片地图改进方案

doi: 10.13203/j.whugis20200033
    基金项目:

    国家自然科学基金 42071455

    国家自然科学基金 41871377

    中央高校自主科研项目 CCNU30106190454

    数字制图与国土信息应用工程自然资源部重点实验室开放研究基金 ZRZYBWD201909

    作者简介:

    刘鹏程,博士,副教授,研究方向为地图表达。liupc@mail.ccnu.edu.cn

    通讯作者: 许小峰,硕士。xu_xiaofeng@mails.ccnu.edu.cn
  • 中图分类号: P208;P28

摘要: 在矢量瓦片地图中,跨网格的要素被分割成多个部分,常常造成点、线、面要素中非均匀符号在网格边界处的不连续,这样不仅影响视觉效果,还容易引发空间认知错误。在保持矢量瓦片数据和样式独立的基础上,提出使用预处理和实时绘制相结合的方法解决这类问题。通过分析不同要素符号在网格边界不连续的类型和原因,提取了不同类型的绘图辅助信息;将绘图辅助信息作为客户端绘图参数来调整瓦片内符号单元的初始位置,从而实现要素符号连续性表达。该方案的有效性在大比例尺地图配图实验中得到了证明。

English Abstract

刘鹏程, 许小峰, 杨敏. 一种顾及符号完整性的矢量瓦片地图改进方案[J]. 武汉大学学报 ● 信息科学版, 2022, 47(3): 455-462. doi: 10.13203/j.whugis20200033
引用本文: 刘鹏程, 许小峰, 杨敏. 一种顾及符号完整性的矢量瓦片地图改进方案[J]. 武汉大学学报 ● 信息科学版, 2022, 47(3): 455-462. doi: 10.13203/j.whugis20200033
LIU Pengcheng, XU Xiaofeng, YANG Min. An Improved Schema for Vector Tile Map Considering Symbol Integrity[J]. Geomatics and Information Science of Wuhan University, 2022, 47(3): 455-462. doi: 10.13203/j.whugis20200033
Citation: LIU Pengcheng, XU Xiaofeng, YANG Min. An Improved Schema for Vector Tile Map Considering Symbol Integrity[J]. Geomatics and Information Science of Wuhan University, 2022, 47(3): 455-462. doi: 10.13203/j.whugis20200033
  • 移动互联网时代,电子地图作为一项基础设施日显重要。智能手机中各类基于位置的服务(location based services,LBS)为出行导航、社交网络、商业物流调度和管理、城市信息发布等提供支持。矢量瓦片是当前兴起的网络地图表达方式,Mapbox给出了其基本特点[1-3]:它使用紧凑的二进制格式传递矢量数据,在半结构化的JSON(JavaScript Object Notation)文件中记录样式,基于硬件加速技术实现了制图库。这样减少传输文件的数据量,更重要的是用户在客户端可以按照自己的要求配置地图符号,满足个性化制图需求。学术界有关矢量瓦片地图的研究多集中在调整分片规则[4-5]、优化数据编码方式[6-8]、提高数据生产效率[9-10]、加速客户端绘制效率[11-12]和改进服务器管理框架[9]等方面。

    尽管矢量瓦片地图要素色彩逼真、线条流畅,但是矢量瓦片将跨网格的要素割裂开来,导致同一要素位于不同网格的多个部分之间彼此独立,常常会造成瓦片边界的要素符号不连续等制图问题[13-14],既影响地图的美观,又容易造成用图者将一个要素误判为多个要素。针对该问题,文献[13]在切片时使用瓦片多边形裁剪符号化后的地图元素,一定程度上解决了问题,但导致瓦片数据不能复用,一旦重新配置地图符号,必须重新生产数据。文献[15]讨论使用扩展的瓦片裁剪要素,只能解决简单符号的配图问题,如可视化多边形时出现冗余剪切线。另有一些研究[16-18]提出在前端恢复原要素,而后进行符号渲染,但这种方式耗费大量资源合并数据,导致用户等待时间过长。

    对于跨瓦片的地图要素,既要考虑传输速度,又要考虑符号的完整性和连续性。因此,本文在原矢量瓦片中补充了符号渲染所需的信息,将其作为数据层面的绘图辅助信息引入到矢量瓦片中。在保持矢量地图灵活性的基础上构建了一种包含要素空间信息和绘图信息的矢量瓦片,同时在客户端配合使用改进的符号绘制方法来解决常见大比例尺地形图符号跨网格表达不连续的问题。

    • 在矢量瓦片地图中,当矢量要素位于多张瓦片范围内时,该要素将被切分为若干独立的片段分别存储在对应的瓦片中,仅记录片段的几何信息、属性信息,需要在前端进行重构的则额外记录合并信息(要素唯一编号、瓦片边界等)[1316-17]

      对于被瓦片分割成若干片段的要素,由于其几何完整性被破坏,在应用不均匀地图符号(如周期性符号样式)时,将导致要素空间和符号空间不一致,进而造成符号的不连续,在视觉上将一个要素分解成了若干个要素。图 1(据文献[13]修改)展示了点、线、面3种基本类型在瓦片边界符号表达不连续的例子。图 1(a)中,公交站要素位于左下角瓦片内,点符号跨越了其余3张瓦片,但由于这3张瓦片中没有相应信息,因此不可避免地出现了符号部分缺失。图 1(b)为矢量瓦片地图中的铁路要素,红色矩形标记了出现的问题:标记1处连续出现两个白色图块,标记2处黑色图块长度变短,标记3处的黑色图块出现丢失。图 1(c)为面要素符号不一致的例子,瓦片边界原本有序的填充符号变得杂乱无章。

      图  1  矢量瓦片地图边界图形问题

      Figure 1.  Graphic Problem Cross Vector Tile

      针对上述矢量瓦片要素的符号表达问题,本文旨在不违背矢量地图样式和数据分离的基础上,通过改进预处理方式和调整客户端绘制方法来解决大比例尺地形图跨网格符号表达不连续的问题。

    • 点要素面临的问题是符号缺失。出现该问题的原因是点的符号跨越了多张瓦片,但仅在其中一张瓦片中存储了其坐标信息,在这种情况下,按照矢量瓦片的原方案进行绘制,点符号将不会正确显示。如图 2所示,点P不在瓦片T2中,但它的符号和T2相交,由于T2中没有点P,因此不会进行绘制,最终造成符号的缺失。

      图  2  跨瓦片点要素符号丢失现象示意图

      Figure 2.  Diagram of Loss of Point Symbols Across Tiles

      在传统方案中,无论点要素的符号是否跨越多个瓦片,点要素的信息仅记录在包含该点的瓦片数据集中[1316-17]。既然点符号部分缺失是由于和符号相交的其他瓦片没有该点的信息,那么便可设法在相交瓦片中添加该点的信息。本文的策略是在切片前先将瓦片扩展,使用(tsize+2δ)×(tsize+2δ)大小的矩形裁剪点数据,其中tsize为瓦片边长,δ为增加宽度,具体根据需要设定。如图‍3所示,瓦片T2的切片范围为红色矩形区域,切片后T2记录了点P的信息。

      图  3  点要素切片的策略

      Figure 3.  Diagram of Point Feature Slicing

    • 线要素是呈线状或带状延伸的对象。线要素的符号包括简单线符号和复杂嵌套线符号。在矢量瓦片中,简单线符号只有宽度的变化,当线宽较大并与邻接瓦片斜交时,就会在网格交界处出现空白现象;复杂嵌套线符号由简单线和图块单元组成,各种图块单元在线上呈周期性分布,其位置受起点影响,要素按瓦片剪切后原先图块单元的位置将被改变,造成符号表达的混乱。图 4所示的国界线就是由一个基本的符号单元(“工”字符号和圈形符号的组合)构成,剪切后符号单元的周期绘制被打破。

      图  4  具有周期性质的线符号

      Figure 4.  Periodic Polyline Symbol

      线要素符号在瓦片分界处不连续的现象可以概括为:(Ⅰ)线要素跨越多个瓦片,符号单元在网格边界不能连续绘制;(Ⅱ)线要素跨越多个网格,在网格边界形成独立的线帽;(Ⅲ)线要素跨越多个网格,线连接在网格边界断裂;(Ⅳ)线要素不与邻接网格相交,但符号化后的图形与网格相交。

      图 5为4类线要素符号表达不连续类型的示例。图 5(a)中标记1为类型Ⅰ,线要素在瓦片边界处图元周期被破坏;标记2为有线帽的线符号,在红色矩形标记区域中,同一地图要素在瓦片边界出现多余的圆形线帽,对应类型Ⅱ;标记3对应类型Ⅲ,当线要素转点恰好位于瓦片边界处,符号表达出现不连续,线连接部分呈断裂状态,导致要素呈现为两条独立要素。图 5(b)对应类型Ⅳ,红色标记处的线要素与瓦片T2不存在相交关系,出现了符号丢失。

      图  5  线要素在矢量瓦片地图边界存在的符号化问题类型

      Figure 5.  Types of Symbolization Problems with Line Features at Vector Tile Map Boundary

      造成Ⅰ类问题的原因为线要素被截断后符号单位的位置归零,可将截断位置记录在每个要素片段中。造成第Ⅱ、Ⅲ、Ⅳ类问题的原因均为邻接瓦片区域内没有记录当前要素的信息,可以在邻接瓦片中记录该要素来解决这类问题。在实际生成线要素切片数据时,将裁剪区域向四周进行扩展,使瓦片裁剪区为(tsize+2δ)×(tsize+2δ)大小的矩形(参数的含义与§2.1相同)。如图 6所示,黑色矩形为实际的瓦片范围,该范围为实际的显示区;红色矩形为扩展后的裁剪范围。在当前瓦片中除了需要记录切片线要素P-Q的基本信息外,还需要将截断位置点P处的里程(即起点L1至点P的距离,单位为像素)记录为绘图辅助信息,为此,本文在线要素的数据结构中添加了截断里程字段dbreak

      图  6  线要素切片范围

      Figure 6.  Slice Extent of Line Feature

    • 面要素符号包括轮廓线、填充色彩、图案或填充线。面要素的符号化依赖其最小外接矩形,以图片填充为例,填充单元以其最小外接矩形的左上角为参考,从左至右、从上往下填充整个多边形区域。图 7中,图 7(a)为图片符号,图 7(b)为使用该符号填充面要素的示例,图 7(c)表示分别填充面要素裁剪后的两个子片段,尽管仍然遵循相同的原则填充图形区域,但是这两个子片段的外接矩形不一致,导致裁剪边缘的图案无法连续布置,即图中表示图片符号位置的虚线框无法匹配。

      图  7  面要素内部符号填充

      Figure 7.  Internal Filling Symbol of Polygon Features

      考虑到面要素内部填充的特点,本文将面要素的最小外接矩形作为绘图辅助信息补充到面要素的结构中,使用rect字段记录。此外,为了解决多边形冗余边线的问题,同样在切片时将瓦片向四周扩展,使得切片产生的边线位于瓦片范围外。

    • 在预处理阶段,本文使用扩展剪切范围以及补充绘图辅助信息的方式调整符号单元的初始位置,以在客户端恢复要素符号表达的完整性。下面讨论调整客户端绘制方法的关键步骤。

    • 点符号包括基本几何图形符号(如圆形符号)、字符型符号以及图片符号[19]。在生成点要素的切片数据时,使用了扩展的矩形进行切片,即数据范围比显示区域大,此时可先用显示窗口(瓦片对应的屏幕矩形区域)对预设的符号化图形进行裁剪,最终仅显示瓦片中的图形。对于简单几何图形符号,直接采用计算几何的方式进行图形裁剪。字符型符号则根据其类型进行裁剪,已有相应的解决方案为:点阵字符的最小构成单位为像素,可将裁剪操作转为点裁剪;矢量字符的最小构成单位是曲线段,可转为曲线的裁剪[20]。对图片符号而言,则可先计算显示窗口和图片符号外接矩形的相交区域,然后将图片符号偏移至指定位置后再在相交区域进行贴图。在§2.1的例子中,点P尽管位于瓦片T2之外,但却在T2的切片范围内。在符号化过程中,首先确定图片符号外接矩形的位置(见图 8(a)),然后计算出相交区域和图片偏移的位置P(见图 8(b)),最终在该处贴图。同理,经显示窗口裁剪,瓦片T1范围内仅显示了填充符号的左半部分,瓦片T1T2中的符号部分组合在一起构成完成的地图元素。

      图  8  点要素符号化方法

      Figure 8.  Point Feature Symbolization Method

    • 对于复杂嵌套线,组成部分包括实线、虚线、标记线。虚线和标记线由图形单元循环配置而成,要素被瓦片裁剪后原有符号的排列顺序或位置被破坏。此外,在绘制线要素时还需要处理线连接和线帽。下文将给出客户端处理这两类问题的方案。

      常见大比例尺地形图符号由一系列基本线型叠加而成,这些基本线型或均匀分布,或由基本的图形单元沿着线要素前进方向循环配置,前者如实线符号,后者如虚线、标记线等。在矢量瓦片中出现问题的符号多为单元循环配置符号,§2.2讨论了在预处理阶段添加dbreak字段用于辅助绘图。以铁路线为例进行说明。铁路线是一种典型的含虚线符号的线型,它是一种嵌套符号,由一层虚线符号和一层比虚线略宽的实体符号组成。在矢量瓦片地图中,绘制虚线符号的关键步骤是计算截断位置处虚线符号的偏移值。图 9中,虚线符号的一个周期长度为SL,截断位置处的里程为dbreak。设虚线符号在瓦片边界截断位置的偏移值为sdev,则sdev=dbreak%SL,式中%为取余运算。将截断位置处的虚线符号进行偏移后,当前网格中的虚线符号能够和邻接网格中虚线符号衔接上。

      图  9  矢量瓦片地图中虚线符号绘制方法

      Figure 9.  Drawing Dashed Symbols in Vector Tile Maps

      有4种基本线连接的类型(无连接、平角连接、尖角连接、圆角连接)和3种基本的线帽类型(平角线帽、圆形线帽、方形线帽)。在传统的矢量瓦片模型中,网格边界的线连接被打断,每个部分都按无连接类型处理(图 5(a))。在改进的方案中,为了保留线连接信息,记录的线要素图形往往比瓦片显示范围大,在屏幕上绘制线状地图元素时,首先要对其进行显示裁剪。符号化后的线要素实际上是多边形,可以使用Sutherland-Hodgman算法[21]裁剪。在计算出需要显示的图形顶点坐标后,按照预设的符号在光栅化后的图形区域中逐片元(像素)绘制。如图10(a)10(b)所示,线要素在拐点处被裁剪为两部分,在各自的瓦片内绘制需要显示的区域(实线部分),最终两张瓦片中的图形实现无缝拼接。线帽的处理方法与线连接一致。

      图  10  线连接绘制方法

      Figure 10.  Connection Method of Polyline

    • 面要素的填充方式有3类:(1)面填充,包括色彩填充和图片填充;(2)线填充;(3)点填充[22]。在矢量瓦片地图中,色彩填充不需要额外的处理,点填充的原理与线填充类似。在预处理阶段,添加了要素的外接矩形rect信息,用于辅助客户端符号化。分两类探讨如何使用rect信息调整填充单位的初始位置,以解决符号不连续问题。

      1)图片符号。一般填充的图片为矩形。面要素的每一个片段都在其rect字段中记录了被剪切前的外接矩形信息。设面要素外接矩形rect的左上角点在当前瓦片中的坐标为(x0,y0),外接矩形与当前网格相交部分的左上角坐标为P(x1,y1),图片符号的大小为w×h。在填充面要素的片段前,首先确定符号在xy方向上的偏移量xdevydev,其中xdev=(x1-x0)%wydev=(y1-y0)%w。在渲染当前瓦片中的面要素片段时,从(x1-xdev,y1-ydev)位置处开始贴图,最终只有位于瓦片内部的图案才会显示。图 11为面要素填充图片符号的示例,虚线表示图片符号的范围,点S(x0,y0)为图示面要素外接矩形rect的左上角坐标,点P(x1,y1)为rect与瓦片的交点。采用改进方案,位于瓦片T2中的面要素片段在填充前首先需要将起始图片符号的位置偏移至点Q(x1-xdev,y1-ydev)处,再依次完成整个要素片段的贴图。位于瓦片T1中的部分采用同样的方式绘制。

      图  11  面要素符号化方法

      Figure 11.  Polygon Feature Symbolization

      2)线图元填充。面填充线要素实际上是在多边形内部区域绘制具有一定规则的线条组,其参数包括线宽、颜色、旋转角度、间隔和偏移[23]。传统的地理信息系统(geographic information system,GIS)软件将地图显示区(矩形)作为绘制线单元的参考框架,使用唯一的坐标系统定位窗口内的像素点,然而,矢量瓦片地图中的每一张瓦片都拥有自己独立的坐标系统,无法直接应用该方法。在矢量瓦片中需要重新定义填充线图元的参考系。具体方法为:首先确定符号化时所需的坐标系统,规定多边形最小外接矩形rect的左上角为坐标原点,向右为x轴正方向,向下为y轴正方向;其次,规定线单元的旋转中心为坐标原点,基准填充线为x轴;最后根据设定的规则填充多边形。

      图 12(a)为使用线单元填充多边形的初始状态,基准线为y=0,间隔值为l,旋转角度为0°。如图 12(b)所示,当旋转角度为α时,基准线解析式变换为xsinα-ycosα=0,接着,将基准线沿着其垂线向下平移n个间隔值ln为间隔的数量),平移后的扫描线解析式为xsinα-ycosα=nl,求解出该扫描线与多边形的交点,将位于多边形内部的交线绘制出即可。使用多边形的最小外接矩形rect控制扫描线移动的范围,当扫描线与外接矩形rect没有交点时,停止该方向的线图元绘制。

      图  12  线图元填充原理

      Figure 12.  Line Primitive Filling Principle

      在矢量瓦片地图中绘制多边形内部填充线时,面要素的所有片段均遵循上述步骤在各自的显示区域完成线单元的填充。如图13(a)13(b)所示,多边形被分割为两部分,在客户端填充时这两片段的图形使用一致的参考系,最终填充线能够正确衔接(见图 13(c))。

      图  13  线图元填充的多边形

      Figure 13.  Filling Polygons with Line Unit

    • 为了评估提出的矢量瓦片方案对于解决瓦片边界地图符号不连续问题的有效性,搭建了矢量瓦片地图平台进行验证。平台矢量数据切片模块使用Java语言开发,数据存储和索引模块使用Elasticsearch搭建,可视化模块基于WebGL实现。图 14(a)为几种典型的地图符号可视化,包括点符号(字符、图标)、线符号(线连接和线帽、标记线符号、虚线符号)和面符号(图片填充和线填充),在矢量瓦片地图原型系统中进行地图配图。在图 14(b)中,网格线表示瓦片边界,图示案例包含了点、线、面3种基本要素,点要素用于表示感兴趣点医院和公交站;几个线性地图符号分别表示不同级别的城市道路和铁路;面状地图元素包括了建筑物、绿地以及运动场所。如图 14所示,点、线、面三种要素在符号化后均正确显示,表明本文所提方案能够有效解决瓦片边界处出现的符号显示问题。

      图  14  原型系统应用案例

      Figure 14.  Prototype System Application Case

    • 本文提出了一种用于处理矢量瓦片地图制图问题的改进方案,该方案通过补充绘图辅助信息以及扩充瓦片裁剪区的方法来还原要素的符号完整性表达,有效弥补了要素碎片化引起的符号显示问题,为矢量瓦片模型中复杂符号表达问题的解决进行了有效探索。在大比例尺地图中,由于地图样式及地物关系的复杂性,地图要素的符号表达还存在很多问题,这些都将在矢量瓦片地图中逐步得到解决,在后续的研究中将进一步探索。

参考文献 (23)

目录

    /

    返回文章
    返回