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

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

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