摘要:研究了基于数据驱动和XML地图描述文档的在线专题地图设计与制作以及数据更新方法,基于ArcGISAPIforJavaScript和D3.js框架研发了可流程化、设计可重用的交互式专题地图信息平台,较好地解决了Web环境下专题地图的快速制作、发布和数据更新等问题,用户交互体验良好,实用性强。
关键词:专题地图;交互;SVG;可视化
0引言
本文设计了在线专题地图设计与制作方法和研发的软件系统,该系统能够较好地解决专题地图制作、发布和数据更新等问题,实现基于数据驱动的专题数据快速更新,提高线上用户交互能力,能够为不同行业提供定制化服务,对类似专题地图的数据快速更新和产品创新做了有益尝试。
1系统分析
1.1需求分析
交互是现代地图可视化的一个关键要素,与用户的交互能力是衡量地图可视化效果的重要标志[1]。一方面,传统的专题地图制作与更新周期长、成本较大,大量人工和时间花费在数据的处理、符号的重新编绘等工作中,对于频繁更新的统计数据或不断变化的实时数据,成图严重滞后或更新效率太低而且不经济,难以满足各行各业专题用图的个性化及现势性需求。另一方面,纸质版或网络地图瓦片等形式“静态地图”只能浏览,缺乏友好的用户体验,未充分考虑到用户的需求,交互功能较少且不易扩展,实用性不强。
相关期刊推荐:《测绘与空间地理信息》本刊是黑龙江测绘局主管、黑龙江省测绘学会主办的反映测绘学科及地理空间信息科学前沿理论和技术并指导地理信息工作者从事科研、开发、生产的技术性、知识性刊物,主要刊载测绘高新技术、地球空间信息和地理信息系统的前沿理论与技术;地理信息系统工程建设的技术总结与经验交流;测绘行业管理与改革的先进经验;测绘生产技术交流、科研成果推广及教学经验介绍等;测绘学和地理信息学中的理论探讨;国内外地理信息学术动态及测绘科技报道与介绍;测绘科普知识;测绘仪器最新发展等。
借助当前互联网、WebGIS等技术的发展,本文提出的在线专题地图设计与制作方法可以较好地解决互联网上专题地图数据更新不及时或不一致、成图周期长、大量重复性工作、协同性差等问题,通过交互式功能设计来进一步增强用户体验。
1.2技术思路
在线交互式专题地图信息平台的设计与实现主要有数据准备、平台研发和交互式应用等3个步骤,其技术路线如图1所示。
1)确定地图用途和类型。在制图之前需明确所做地图的用途、要求、类型等信息,确定专题地图的主题,绘制分布图还是统计图等。
2)发布地理底图。按照不同图种、不同比例尺对地理底图要素容量的要求,编制不同主题和显示层次的地理底图,通过ArcGISServer完成地图服务发布,根据内容从专题数据库中选择相关的数据。
3)选择专题数据
专题数据是绘制专题地图的数据源,主要包括统计型(或者数值型)数据和空间数据。其中,对统计型数据,后期应用时需要进行统计分析,生成文本格式JSON[2](JavaScriptObjectNotation,JS对象标记)返回给客户端进行图表绘制;对空间数据,即可以利用ArcGIS的GeoDatabase模型,通过ArcSDE访问远程地理数据库,也可以生成GeoJSON/TopoJSON或加载本地SHP文件等方式管理。
4)可视化设计
首先,编制基于XML的地图描述文档,定义专题地图样式数据和制图规则。包括尺寸、颜色、符号等内容,将不同样式的数据结构化,实现不同要素样式数据的集成。以XML的形式将专题统计数据与地图样式数据进行绑定,组成点状分布、线状分布和面状分布等不同专题的图层系列,用户可在客户端依据XML样式数据动态制作专题地图。后期只需要通过修改此XML文件,即可实现不同功能和样式的应用组合,动态生成客户端图形界面[3]。
其次,设计专题要素的绘制形式。主要包括点、线、面、注记、表格和图片等。其中,点、线、面和注记符号可以通过SVG(ScalableVectorGraphics,可缩放矢量图形)来表达,表格和图片可以使用HTML5来实现绘制。
5)客户端展示,提供交互式应用
研发专题地图设计与制作向导工具,用户通过选取地理底图和指标体系、符号库、定义数据模型等步骤辅助生成XML格式的底图描述文档。研发在线专题地图展示系统,调取服务器端的XML文件对专题地图初始化配置并实现可视化,提供数据交互、属性查询、符号交互等功能。
2系统设计
2.1架构设计
在线交互式专题地图信息平台自下而上由数据层、服务层和表现层3层架构组成,如图2所示。
数据层是平台的数据来源和存储层,分为空间数据、专题数据和表达制图规则的地图描述文档3类。其中空间数据作为地理底图的主要数据源,专题数据作为专题地图的数据源,包括存储在数据库中的统计型数据、空间数据以及以文件形式存在的GeoJSON/TopoJSON、SHP格式用户数据。
服务层负责响应客户端的用户请求,提供地图服务和数据访问服务,通过ADO.NET、ArcSDE等方式调取数据层里的各类数据。其中,地图服务包括地理底图服务和空间专题数据服务。基于ArcGISServer发布的地图服务以及符合OGC标准的互联网地图服务都可以作为地理底图服务供用户调用。数据访问服务主要用于与后台专题数据库交互,获取用户所需的专题数据内容。
表现层使用了D3.js(Data-DrivenDocuments,数据驱动型文档)框架和ArcGISAPIforJavaScript,能够在客户端实现可视化和用户交互。D3.js是一个基于SVG技术实现动态可视化的第三方JavaScript库。
平台包括专题地图设计与制作向导工具和在线专题地图展示系统这两个子系统。
其中,专题地图设计与制作向导工具采用C/S(Client/Server,客户端/服务器)模式设计,主要负责根据点状、线状、面状和其他表示方法,设计定点符号法、线状符号法、定位图表法、范围法、分级比值法、分区统计图表法等表示方式的参数模板,包括符号大小、符号形状、符号结构、面填充颜色、边线颜色等;形成适宜要素的、可供选择的指标体系;过滤出适合的制图方式和符号库;生成XML格式的地图描述文档,用于后续的专题地图展示。
在线专题地图展示系统采用B/S(Browser/Server,浏览器/服务器)模式设计,主要负责基于XML地图描述文档和专题数据库实现专题地图绘制和交互功能。
2.2功能设计
系统功能主要包括数据交互、底图交互、符号交互、属性查询、重要属性作为鼠标提示信息、通过更改参数或值的范围进行显示过滤、调整制图参数、高亮显示等。
1)数据交互,包括用户对专题数据和内容的选择、数据变更。为了实现专题地图设计的可重用性和快速数据更新,就必须建立以数据为中心、基于数据库管理和组织的专题地图数据集,通过数据检索和数据分析来发现数据之间的联系,甚至是产生新的、延伸后的数据,将专题地图数据更新任务简化为针对数据库的增、删、改等基本操作,而无须大幅更改甚至重做专题地图的设计,最终实现专题地图设计与数据的分离。
2)底图交互,包括系统底图切换、信息提示和用户临时修改底图样式功能。其中,系统底图地图信息提示将地图信息以弹出信息框形式显示,可显示地图重要信息;用户临时修改底图样式可自定义颜色值或修改填充样式重新渲染底图。
3)样式交互,包括专题符号样式和整饰要素样式的修改,对生成的默认专题图的符号和整饰要素进行简单设计,如对符号颜色、填充进行修改。还可以通过专题地图设计与制作向导工具为用户提供详细的设计,完成图表和整饰要素样式的保存,将所有的属性保存为XML地图描述文档,可通过替换XML地图描述文档来重新渲染样式。
4)属性查询,根据要素的渲染方式不同,可分为属性提示框和提示窗,其中,对于统计图表形式的专题要素采用鼠标移到专题要素上即可显示该专题属性信息并且该专题高亮显示;对于呈面状、线状分布的专题要素,需要单击要素弹出属性提示窗,显示专题要素属性信息并且该专题显示被选中状态。
3应用实例
本文针对分布图、区划图、类型图、趋势图、统计图等5种结构形式、以2011年出版发行的《新疆维吾尔自治区资源经济地图集》中年平均气温、国内旅游等具有代表性的12幅专题地图为例,基于ArcGISAPIforJavaScript和GeoJSON/TopoJSON结合D3.js等可视化工具,研究在线专题地图制作方法,使用ASP.NET和C#设计并建立了具有高度定制化、设计重用的交互式专题地图信息平台,实现专题地图的自动化表达。
其中,地理底图是基于ArcGISServer发布的地图或数据服务,可以叠加点、线、面及自定义图层。本文将基于SVG或者D3绘制的图形作为ArcGIS地图的自定义图层叠加到地理底图上,在底图空间数据属性表中和专题数据库表中添加关联字段geocode即地理编码[4]和专题要素定位点坐标(相对坐标),实现了两者精确叠加。考虑到图面布局的美观性和避让,笔者并未选择制图区域多边形的中心点作为定位点。
4结束语
本文提出的在线专题地图设计与制作方法,使用XML地图描述文档来描述制图员设计思想和制图规则,将不同样式的数据结构化,对专题统计数据与地图样式数据进行关联,使得数据、地图设计和展示界面的分离,最终实现了专题地图设计可重用和数据快速更新。研发的软件系统无须安装浏览器插件和图表控件,能够较好地解决专题地图制作、发布和数据更新等问题,能够为不同行业提供定制化服务。但平台系统中还存在图面负载量随比例尺变化而动态变化效果不佳、地图符号不够精细、动态注记和数据安全等问题,这也是今后研究的方向。——论文作者:宫林成
* 稍后学术顾问联系您