Qt跨平台地图符号系统测试

发布时间:2020-05-15 10:14:50 作者:臻图信息 阅读量:1033

1、原型测试系统实现

1.1 Windows下环境配置

    大多数人对Windows环境比较熟悉,因此,在Windows下完成相关功能编写和调试。对于Windows开发环境配置如下:

    1)集成开发环境选用VS2010,下载并安装;

    2)访问网址http://qt-project.org/downloads根据自己电脑配置下载对应的Qt5.2.0的版本安装;

3)根据Qt安装路径设置环境变量,设置如图所示:

    4)下载并安装VS2010插件Visual Studio Add-in 1.2.2 for Qt5,至此就完成了Windows下开发环境的部署。

1.2  windows下设计与实现

    原型测试系统主要包括主界面、符号库管理界面和图层管理界面等。主界面由工具条、状态栏、图层视图、主视图四部分组成。对于工具条提供了添加数据集、符号管理器、图层属性、全图功能。状态栏主要显示当前鼠标位置、地图比例尺和绘制状态等。图层视图显示了当前地图的图层名称,可以快捷控制图层的可见性,移动图层位置,调整图层的上下关系。主视图主要用于显示地图,进行与用户进行交互,主界面如下图所示。

    测试系统为了提供基本的地图的放大、缩小和平移功能,需要将主视图的鼠标事件重写,而对于嵌入式设备需要重写触摸屏事件。对于触摸屏,原型测试系统最多能够支持三点式触摸,并通过触摸屏的手势来判断地图操作的类型。

    对于常用的地图符号和色带,将其存储在SQlite数据库中,方便用户的重复使用。地图符号在数据库中的存储是按照符号类型分别创建点符号、线符号、面符号三张表。表主要的信息由符号的唯一ID、名称和数据流等组成。色带分为随机色带和渐进色带两种,使用一张色带表示两类色带。色带表的信息有色带的唯一ID、名称和数据流。完成数据库结构设计后,使用Qt设计符号库管理相关界面。

    符号管理器主要包括符号管理主界面、点符号管理界面、线符号管理界面、面符号管理界面、随机色带管理界面和渐进色带管理界面等。

    符号管理主界面主要负责创建符号库存储文件、导入已有符号库存储文件、插入常用符号、删除已有符号以及修改已有符号参数等,界面如下图所示。

点、线、面符号管理界面分别负责点、线、面符号创建与修改。符号库中的符号可以在视图中直接使用,也可以根据需要在已有的符号上做修改。点、线、面符号管理界面如下图所示。

    通过上述的符号管理器创建出一些常用的点、线、面符号实例,效果如下图所示。

    同样对于色带的管理,提供色带管理界面。色带使用RGB和HSV颜色空间,主要用于渐进符号的填充以及一些专题图,其管理界面如下图所示。

对于符号和色带查询、插入、删除和修改,实质是通过SQL语句对数据信息进行修改,例如符号的插入主要代码如下:

    图层管理界面主要负责图层基本属性的设置,注记的相关属性设置和地图专题显示设置,其管理界面如下图所示。

1.3 编写跨平台文件

    Windows环境下的测试系统设计与实现已经完成,为了实现在其他系统上能够运行,需要编写与平台无关的文件,而Qt为我们提供了pro文件。

    针对不同操作系统,只需要编写一份pro文件。在文件中,添加自定义字段P1atFormName,来区分不同的操作系统。这里我们以地图控件模块为例说明一下pro文件的编写方法。

    P1atFormName字段根据编译环境,区分不同的操作系统;CONFIG(debug,debuglrelease)判断方案配置;DESTDIR字段设置模块生成路径;TEMPLATE字段定义模块类型,如动态库赋值为lib;利用TARGET字段设置模块的名称,如接口模块可设置为MapControl;  DEFINES字段定义预处理宏;使用LIBS字段添加模块依赖库;INCLUDEPATH字段添加头文件文件路径;SOURCES字段添加需要编译cpp文件。对于pro的文件其他字段说明,可以参考Qt官网的白皮书,这里就不再赘述。

    对于其它模块,分别按照格式编写相应的pro文件。有了pro文件,利用QtCreator集成环境开发环境配置相应平台信息,无需手动去编写代码,便可以实现语言之间的互操作,提高了跨平台的效率。接下来分别介绍各系统环境部署、可执行程序生成和测试。

2、Android系统编译与测试

    Android系统底层核心模块采用C或者C++编写,但其上层应用模块采用Java语言编写,这样使得二次开发必须使用Java语言。Android在发布时,谷歌己经声明Android的虚拟机支持JNI这种编程方式,这为使用C或者C++开发功能模块提供了可能。

    Android环境配置如下:

      1)在Android开发官网下载 Android SDK和NDK;

      2)下载并安装Java开发环境;

      3)在Qt官网下载Qt 5.2.0 for Android (Windows 32-bit)并安装;

      4)打开Qt安装目录下的qtcreator,配置Android开发环境,如下图所示。

    以上就是部署Android开发相关步骤。将先前编写好的pro文件加载到qtcreator,设置为Android for armeabi 工程。此时,Android运行版本最低为Android2.1。根据模块的依赖关系依次编译生成Android动态库.so文件,最后编译主测试程序,打包生成.apk安装文件。使用手机安装助手将apk安装到手机上,并将shp矢量数据拷贝到手机sd卡上。手机选用小米2,其配置为操作系统Android OS 4.1、主屏尺寸4.3英寸、RAM容量2G、 ROM容量为16G。安装完成后,启动应用程序,加载矢量数据,对各类符号分别测试。测试效果如下图所示。

3、Linux和Mac系统编译与测试

    Linux系统版本有很多,选用比较流行、稳定的Ubuntu 12.04的64位系统。Ubuntu下的编译器使用gcc,它提供了g++来编译C++程序。Linux下的开发环境配置相对比较简单。通过“sudo apt-get install g++”命令下载安装g++编译器,并使用“g++ --version”查看是否安装成功。在Qt官网获取Qt5.2.0 for Linux 64-bit开发包,便可完成开发环境的配置。接下就是对各个模块的编译。将开发程序拷贝到Ubuntu下,使用qcreator加载所有pro文件,依次编译所有模块。加载数据,测试效果如下图所示。

    Mac系统与Linux系统内核有密切的关系,在功能和命令行上有很多相似之处,因此,只需从下载Qt5.2.0 for Mac,其他环境配置与Linux相同。运行结果如下图所示。

4、 iOS系统编译与测试

    Qt5.0版本以后,增加了对iOS的支持,但稳定性较差。2013年12份推出的Qt5.2.0正式版,修改了原来版本存在的bug 。Qt5.2要求安装xcode5.0版本,而xcode5.0只能在Mac 10.8 Mountain Lion及以上版本运行。具体的环境配置如下:

    1)安装10.8 Mountain Lion系统;

    2)安装g++编译器;

    3)安装xcode5.0集成开发环境;

    4)安装Qt5.2.0 for iOS。

    iOS开发不像Android,免费对用户开发。程序人员如果要在真机上测试或发布产品,就必须花费9.9美元购买许可文件,使用期限为一年。有开发环境和许可便可以使用pro文件对各个模块进行编译。连接IPad, IPhone或者其他iOS移动设备,编译主程序便可将其安装到设备当中。测试效果如下图所示。

    以上完成了各个系统编译和测试工作,说明了设计的地图符号框架具有跨平台的特性,不仅如此,地图符号库也具有跨平台的特性。例如在Window下,设计一个长城符号,将这个符号库文件拷贝到其它系统下,便可直接使用。我们使用Window和iOS两个系统做测试,结果如下图所示。

5、结语

随着科技的发展,GIS应用领域越来越广,已经深入到社会生活的方方面面。通过地图查询、定位、导航等功能,方便了人们出行。而地图是空间数据符号化的结果,其显示质量影响着地图服务的效果。但计算机、移动设备等操作系统种类较多,因此,研究跨平台是非常必要。它不仅方便使用,而且易于管理扩展。

 

 

标签:Qt  地图符号  系统测试  

我要评论

热门标签

数字孪生  智慧城市  城市大脑  智慧社区  三维GIS  新基建  智慧园区  3DGIS  智慧环保  三维可视化  智慧安防  大数据  数字化  智慧交通  物联网  市域治理  智慧大脑  智慧物流  地理信息  GIS  智能化  智慧旅游  5G  管理系统  服务平台  3DGIS+BIM  智慧消防  GIS地理信息  gis系统  智慧电网  应急指挥  智慧管廊  智慧建筑    智慧工厂  gis技术  烟草  三维gis系统  GIS+BIM  3dgis  三维gis  gis  智慧展馆  智慧工地  三维gis平台  供应链  gis行业  智慧校园  应急管理  地理信息系统  智慧停车  智慧电力  智慧景区  智能交通  GIS技术  智能建筑  智慧水务  智慧楼宇  智慧港口  gis三维可视化  工业互联网  智慧物业  BIM+3DGIS  智慧监狱  智慧展览  智慧照明  市域社会治理  gis平台  gis平台系统  管理平台  GIS系统  三维gis软件  三维GIS技术  BIM  智慧能源  综合治理  三维gis技术  区块链  BIM轻量化  商业地产  3D-GIS  智慧房产  互联网  gis数据  三维gis开发  gis三维系统  人工智能  智慧医疗  交通仿真  城市规划建设  系统架构  市域社会治理现代化  自动化  无人机  基础设施建设  CIM  数字城市  数字经济  交通运输  数字化城市  建筑产业  信息物理系统  顶层设计  智慧林业  智慧工厂、安全生产管理、3DGIS+BIM  智慧交通、数字孪生、3DGIS  数字孪生技术  智慧变电站  智慧管理  三维地图  ZTMAP3D  三维管网管线  地下综合管廊  二三维GIS地理信息  智慧仓储  ZTmap3D  智慧机房  BIM三维模型  智慧养老  2.5D地图  地质灾害  综合管网  综合管廊  园区招商  智慧制造  数字电网  安全管理   GIS+BIM  三维可视化渲染  ZTMapGIS仿真地图  二三维GIS地理信息平台  室内地图  智慧海洋  三维融合渲染平台  三维gis渲染平台  一网统管  智能热网  VR全景  综合管控治理  map  智能化建筑  3D  三维可视化管理平台  三维可视化平台  兜逛VR  室内地图导航  VR全景可视化  智慧农业  三维渲染  智慧公交  智慧医院  智慧灯杆  智慧国土  商场可视化  智能监所  新零售  应急指挥系统  现代化  地图符号  gis空间分析  GIS平台  gis地理信息系统  gis专业  三维GIS平台  三维gis软件系统  gis三维平台  GIS开发  三维GIS软件  实景三维gis  三维gis模型  城市应急  应急预案  gis是什么  gis应用实例  开源gis软件  gis高压设备  gis地图服务  gis开发  gis行业发展  导航  gis空间数据  gis服务  gis软件  三维GIS开发  智慧管廊综合监管平台  三维管廊  虚拟展馆  管廊BIM  三维管网  智慧管网  bim  2.5D-GIS  环保GIS  环保可视化  二三维一体化  假三维地图  信用社GIS  信用社地理信息系统  资产可视化  机管局资产管理  党校地图导航  综治  三维GIS、智慧社区  动态渲染  工业园区管理  土地规划gis  智能电网   智慧物流园区  gis地图  Webgis  Qt  总体设计  系统测试  三维gis平台功能  电子沙盘  智慧环境  业务功能  电力巡检  城市规划  数据管理  事故救援  平台构建  技术详情  系统管理  景观设计  智能楼宇  产业链  大数据可视化  可视化技术  地下管廊  系统改造  公共安全  可视化  三维gis二次开发 三维gis接口  VR虚拟现实  gis市场  gis平台监控  配电网gis系统  管网GIS系统  管网管理GIS服务平台  gis信息系统  gis设备  gis的基本功能  云gis  BIM平台  gis应用  高校GIS系统  电网GIS行业  GIS应用平台  移动GIS  视频监控  房产交易地图  GIS管网系统  gis服务平台  BIM与GIS集成应用  gis软件系统  消防GIS系统  管网gis系统  地产  
上海臻图信息技术有限公司
沪ICP备19005932号-1