本发明具体涉及一种基于动态地图符号的移动GIS可视化方法动态地图符号的技术领域

背景技术:

随着移动设备的高度集成化和处理器的快速发展,终端设备的计算和处理能力不断增强,移动GIS的应用领域越来越广泛。基于移动GIS的数据可视化通过移动地图模块的地图符号进行可视化表达,主要有矢量图形和瓦片图像两种表达方式。其中,基于瓦片图像格式的地图符号在移动地图上进行可视化表达的方法简单且易操作,但是当地图符号数据量较大时,瓦片图像格式图形占用较多的内存,并且地图的缩放操作将直接导致符号的失真现象;基于矢量图形格式的地图符号在移动地图上进行可视化表达时要求移动设备具有很强的计算和图形解析能力。总之,由于缺少对移动通信协议及实时数据处理的支持,移动GIS的可视化很难实现对监测数据的实时可视化。

技术实现要素:

本发明目的是提出了一种基于动态地图符号的移动GIS可视化方法,通过不同类型的实时数据和地理实体符号视觉变量的映射关系,并将地理实体符号的设计、动态可视化技术、移动通信协议有机结合,实现移动GIS可视化中的地图符号动态变化。

技术方案如下:

1、基于实时数据处理的地理实体符号可视化机制

1)根据移动监测设备数据特征确定其可视化方法;

在GIS地图上实时可视化移动监测设备数据的过程即实时GIS进行可视化表达的过程。因为,终端设备数据处于不断刷新,不断更替的过程,所以其数据可视化描述究其根本就是实时数据可视化,以终端实时采集的数据与符号图元视觉表达相对应,最后将终端设备数据实时地以图形图像的形式显示在GIS地图上。由此,在GIS地图上实现终端设备数据的实时可视化方法的关键之处在于创建驱动视觉表达刷新的映射规则,以终端设备数据的变化触发地图符号图元视觉变量的改变,实现基于GIS地图的设备数据实时可视化。

2)地图符号视觉变量的数据可视化表达

借助矢量图形文件将移动监测设备设施抽象表达为矢量地图符号,并将该地图符号绘制到地图指定位置坐标处,通过这样的方式在GIS地图上自定义矢量地图符号实现移动监测设备的数据可视化,在地图上标注出该移动监测设备的空间位置及可视化描述时的状态数据。

3)实时数据与地图符号图元映射定义

移动监测设备数据是不断刷新的,要通过地图符号实时可视化设备数据,必须由设备数据的刷新来驱动地图符号视觉变量的不断刷新。这一驱动机制就是建立设备数据与地图符号图元进行映射的可视化表述,在映射规则中将图元视觉变量与设备数据一一对应,建立条件判断表达式来描述两者之间的映射关系。定义条件判断表达式的判定条件和执行操作,以“IF…THEN”的判断机制规定该映射规则实现方式,通过对移动监测设备数据的逻辑判断后执行地图符号图元视觉变量修改的操作,实现在不同判决条件下的不同视觉表达。

2、面向移动GIS图层的实时数据可视化方法

1)通信协议及数据格式

Android终端设备主要采用两种通信方式从服务器获取传感器数据,HTTP(HyperText Transfer Protocol,超文本传输协议)通信协议和SOCKET套接字。本发明采用主动发送HTTP GET请求至服务器,获取操作者信息、设备单位和设备监测数据以及地图符号数据,这些数据均JSON(JavaScript Object Notation)数据格式的形式存储和传输。此外,还建立与服务器SOCKET的长时连接,服务器在数据处理过程中能够经由SOCKET通道向客户端主动发送消息。

2)地图符号数据的解析加载

地图符号文件使用SVG矢量图形格式,结合当前移动终端设备的软硬件发展形势,使用SAX的解析方式读取解析SVG地图符号文件。SAX解析器逐行读取SVG图形文件标签时,每提取一个图元标签即实例化一个与其对应的图元对象,保存图元属性作为该对象参数,然后存储到键为图元ID号,值为图元对象实例的HashMap集合中,解析结束该HashMap表中存储的就是SVG矢量图形的所有图元及其属性值。

3)实时数据与地图符号的映射与绘制

在设计自定义矢量地图符号SVG文件中,不仅有地图符号图形的基本元素,而且有映射规则的XML语言描述,应用程序解析SVG文件获取所有图元及映射规则均存储于HashMap集合中。移动终端运行Android应用程序时自动检测地图符号文件及实时数值映射规则文件,预先载入地图符号绘制模块;当图层传递坐标、传感器数据和绘图句柄过来时,绘制模块就会按照映射规则,将符号数据通过绘图句柄绘制到指定地理坐标,完成实时数据与地图符号的映射与绘制。

有益效果

本发明根据移动终端监测设备数据特征,创建其与地图符号图元的映射规则,通过设备数据的变化驱动地图符号视觉变量的改变,在GIS地图上实现数据实时可视化,达到实时动态移动GIS可视化的目的。

实时移动GIS可视化具有实时性或是准实时性特征,其能够实时掌握当前数据的最新状态,并且可视化动态展现。

本发明支持自定义通信协议及数据格式进行终端设备数据的交互,以及即时通讯协议MQTT实现数据更新和客户端消息推送等丰富的应用功能。

附图说明

图1为映射规则类和通信协议类与图元对象的耦合。

图2为符号图元与实时数据的映射规则

图3为SVG图元解析与存储过程

图4为实时数据与地图符号的映射及绘制流程

具体实施方案

(1)符号图元与实时数据的映射规则及定义

基于地图符号实现设备设施数据的实时可视化,需要根据设备数据特征创建适用于该数据特点的地图符号图元与传感器设备数据之间的映射规则。

为了区分同种类型不同元素属性值的图元,在每个图元描述标签中添加新的属性值ID号,即矢量地图符号文件中所有符号图元具有独一无二的ID编号值。移动监测设备数据与地图符号图元视觉变量之间的映射规则就是通过此ID编号检索到符合映射要求的图元,并根据映射要求修改该图元属性值,实现视觉变量的不同表达。

本发明以SVG格式的矢量图形编辑矢量地图符号,进行ID等属性和映射规则的设计。每台终端设备上有多种类型的传感器,如开关监控、温度监控、湿度监控等。为了区分每一种类型终端设备,给每一个终端设备添加逻辑地址属性。根据终端数据可视化方法、数据类型以及基于产生式映射规则的原理,建立映射方式。符号图元与实时数据的映射规则如图2,离散型监测数据利用逻辑判断“=”建立映射,如将图元填充颜色对应开关变量设备。当开关监控设备为开,即开关设备数据为“1”,根据映射规则将对应的图元svg_1的填充颜色设置为红色(#ff0000),当开关监控设备为闭,即开关传感器数据为“0”,则根据映射规则将对应的图元svg_1的填充颜色设置为灰色(#808080);连续型的传感器数据则通过区间判断建立映射关系,如将图元对应温度监测设备采集的温度数据,当温度数据处于区间(20.0,100.0)时,将图元线条填充色设置为橙色(#ffa500)等。

(2)地图符号数据的解析加载

地图符号文件使用SVG矢量图形格式,结合当前移动终端设备的软硬件发展形势,确定使用SAX的解析方式读取解析SVG地图符号文件。

在读取到标签,表示SVG文件解析存储的开始;当读取到SVG文件中标签为时,解析标签后“width(宽度)”、“height(高度)”、“fill(填充色)”、“stroke(线条填充色)”等所有关键字,获取视觉变量属性值;最后在读取到标签,表示SVG文件解析读取结束,此时关闭SAX解析器完成SVG的读取。

SAX解析器逐行读取SVG图形文件标签时,每提取一个图元标签即实例化一个与其对应的图元对象,保存图元属性作为该对象参数,然后存储到键为图元ID号,值为图元对象实例的HashMap集合中,该HashMap表中存储的就是SVG矢量图形的所有图元及其属性值。如当解析器读取到SVG文件中标签时,系统就会创建Element_Rect对象,并将解析该图元标签后的属性添加到Element_Rect对象的变量中,最后将这个对象作为值,图元标签中的ID号作为键,存储到统一的HashMap集合表中。当读取到SVG图形文件的最后一个标签时,即表示SAX解析完成,此时该HashMap表中存储的就是SVG矢量图形的所有图元及其属性值。

3)实时数据与地图符号的映射与绘制

在设计自定义矢量地图符号SVG文件中,不仅有地图符号图形的基本元素,而且有映射规则的XML语言描述,应用程序解析SVG文件获取所有图元及映射规则均存储于HashMap集合中,其过程如图3示。

移动终端运行Android应用程序时自动检测地图符号文件及监测数值映射规则文件,预先载入地图符号绘制模块;当图层传递坐标、传感器数据和绘图句柄过来时,绘制模块就会按照映射规则,将符号数据通过绘图句柄绘制到指定地理坐标。具体过程如图4所示,应用程序通过建立与服务器的连接获取监测设备数据,初次使用时地图符号绘制模块根据监测数值匹配映射规则中图元属性值设置SVG矢量图形的图元视觉变量,然后调用绘图句柄定义一个画布Canvas,遍历存储所有图元对象的HashMap集合表,通过地图模块提供的符号绘制Draw方法根据二维坐标将各个图元绘制到画布上的指定位置。当监测设备数据发生改变时,应用程序对比数据数值是否在映射规则眼球的数值范围内,如果是则根据映射规则给出的ID提取相应需要修改的图元对象并修改该图元属性值,否则保持原图元对象不变,最后驱动绘制函数遍历HashMap集合表,重新读取各个图元信息进行地图符号的绘制。每次绘制新的地图符号都需要将其添加到新的图层,并将新的图层加载到地图引擎中,完成地图符号跟随监测数值的不断刷新。

arcgis android gif,一种基于动态地图符号的移动GIS可视化方法与流程相关推荐

  1. 航测大数据量处理_一种基于动态航测的图像大数据分析方法与流程

    本发明涉及数据处理技术领域,具体为一种基于动态航测的图像大数据分析方法. 背景技术: 数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的 ...

  2. sar图像去噪matlab,一种基于总曲率的SAR图像变分去噪方法与流程

    本发明属于数字图像处理技术领域,具体涉及一种基于总曲率的SAR图像变分去噪方法. 背景技术: : 相干斑噪声是合成孔径雷达(Synthetic Aperture Radar,简称SAR)图像的重要特征 ...

  3. 反射内存 延时_一种基于反射内存卡的OpenDDS分布式通信方法与流程

    本发明属于分布式通信技术领域,尤其涉及一种基于反射内存卡的OpenDDS分布式通信方法. 背景技术: 随着分布式系统复杂程度的不断增加和研发规模的迅速扩大,系统集成的难度和风险都在大幅提高.提供实时系 ...

  4. html5音频剪辑,一种基于HTML5Canvas画布音视频分段剪辑方法与流程

    技术特征: 1.一种基于html5canvas画布音视频分段剪辑方法,其特征在于:包括如下步骤: 步骤一:首先使用者预先获取源音视频文件,然后使用者对音视频文件分段剪辑时,进入音视频文件分段剪辑主单元 ...

  5. plc控制可调节阀流程图_一种基于PLC神经外科引流控制系统及方法与流程

    本发明属于医疗辅助技术领域,尤其涉及基于PLC神经外科引流控制系统及方法. 背景技术: 神经外科手术患者在做完手术后通常需要安置不同的引流管进行各种引流,这是一种常用的神经外壳急救手段,根据导管末端位 ...

  6. 基于linux火焰识别算法,一种基于深度学习模型的火焰识别方法与流程

    本发明属于通信领域,具体涉及一种基于深度学习模型的火焰识别方法. 背景技术: 随着我国工业化与城镇水平的不断提高,现代设施大型公共建筑朝着空间大.进深广功能复杂的多元化方向发展,这对于防烟火朝着空间大 ...

  7. 差分隐私 matlab,一种基于差分隐私保护的谱聚类方法与流程

    本发明属于隐私保护技术领域,提供了一种基于差分隐私保护的谱聚类方法. 背景技术: 近年来,随着互联网与信息技术的蓬勃发展,海量数据的产生可以为研究者们提供许多有效的信息资源,对这些海量数据进行挖掘分析 ...

  8. 激光雷达角点检测 c语言,一种基于事件帧的角点检测方法与流程

    本发明属于图像处理领域,用于解决基于事件相机的SLAM项目的角点检测. 背景技术: 在过去几十年里,由于计算机视觉算法的研究与发展,人们对机器人感知的兴趣也日益增加.这种传统相机能够捕获相机周围环境的 ...

  9. oracle自动售票服务器,一种基于Oracle数据库客户端的业务自动处理方法与流程

    技术领域 本发明涉及计算机技术领域,具体地说是一种实用性强.基于Oracle数据库客户端的业务自动处理方法. 背景技术: 在实现预约挂号的移动应用中,由于医院业务系统处理缺失自动取消预约功能,经常需要 ...

最新文章

  1. python中execute函数_Python 中的内置函数与模块
  2. 如何制作风格迁移图?
  3. weblogic在linux服务器上部署应用
  4. 超详细 1小时学会Python输入和输出!
  5. mysqli mysql error_mysqli常用错误处理函数
  6. PROD_ROOT and PRD_ROOT
  7. Android小插件 —— 天气插件
  8. far html 制作chm,CHM格式制作软件Far使用技巧
  9. C#获取单个字符的拼音声母
  10. app开发(Uniapp开发)之Sass学习
  11. MATLAB实现分支定界法求解整数规划
  12. 大数据中的物联网运用
  13. 【DP】AGC012 E Camel and Oases
  14. HTML5系列代码:一个完整简单的页面
  15. 275、从零开始教你配置H3C路由器
  16. 出租车计价C语言程序
  17. Redis清除某个库中的所有数据
  18. 如何分析公众号后台数据?
  19. 高德拉特的TOC制约理论—《可以量化的管理学》
  20. 三月“女孩月”,玩具反斗城推出独家发售玩具

热门文章

  1. python 敏感词过滤
  2. Options API
  3. 新高考3+1+2模式(4选2)全走班自动排课系统7.0(正式版)
  4. java rhino 下载_Java 6的内置Rhino版本和Mozilla直接提供的Rhino包有什么区别?
  5. 人工智能往哪个方向发展有前途?计算机视觉还是自然语言处理?
  6. java post重定向_java实现响应重定向发送post请求操作示例
  7. python中大批量m3u8文件合并总结
  8. HBase2.x(十六) HBase与 Hive 的集成
  9. Hadoop基础【HDFS、Yarn、MapReduce框架概述、框架的搭建】
  10. Php邮件通知源码,php发邮件源码