Qt作为一款开源跨平台的C++应用程序框架,支持Windows、Linux、Mac OS X、Android、iOS、Windows Phone、嵌入式系统等。换句话说,Qt 可以同时支持桌面应用程序开发、嵌入式开发和移动开发,覆盖了现有的所有主流平台。只需要编写一次代码,发布到不同平台前重新编译即可。Qt 虽然庞大,封装较深,但它的速度并不慢,虽不及MFC,但比Java、C#要快,因此受到越来越多开发者的青睐。ArcGIS Runtime 产品提供了ArcGIS Runtime for Qt版本,方便广大Qt爱好者使用。下面把Linux下ArcGIS Runtime for Qt 100.1的安装环境和运行介绍一下。
一、环境的搭建
ArcGIS Runtime for Qt 100.1对Linux的版本要求参考系统需求:
本文使用的是Ubuntu(64-bit) 16.04 LTS操作系统。
Qt的安装:
其支持的Qt版本如上图,本文使用qt-opensource-linux-x64-5.9.1.run,执行chmod +x qt-opensource-linux-x64-5.9.1.run,然后执行./ qt-opensource-linux-x64-5.9.1.run,会弹出安装界面:
这里选择Skip即可,不然是需要登录或者注册的,否则无法进入到下一步。
选择安装路径,后面一直Next即可安装成功。安装成功后在Qt Creator->Tools->Option->Build & Run->Qt Versions 页面,添加qmake路径即可,如图:
最后配置下环境变量:export PATH=”/opt/Qt5.9.1/5.9.1/gcc_64/bin”:$PATH,使其生效。关于Qt的安装与配置可以参考链接。
ArcGIS Rutime SDK 100.1 for Qt的安装:
首先Esri官网上下载ArcGIS_Runtime_SDK_Qt_Linux64_100_1_0 .tar.gz,解压gunzip .tar.gz,然后 tar xvf .tar,最后执行./Setup ,弹出如图界面,一步一步安装即可:
安装完成后,会弹出Post Installer界面(即使没有弹出也没有关系,可以手动将其调出来):
在这里选择对应的路径即可。
点击完成。最后需要在用户下添加LD_LIBRARY_PATH环境变量,位于/home/arcgis/runtime_sdk/qt100.1/sdk/linux/x64/lib,具体参考链接,到此ArcGIS Runtime SDK 100.1 for Qt环境就搭建好了。
二、程序的运行
环境搭建好后,打开Qt Creator,会看到ArcGIS Runtime的模版文件:
可根据自己熟悉的开发方式进行选择。这三种模版的Map view类型有些区别,如下图,详细信息可参考链接。
这里我选择Qt Widgets app,接下来选择工程名称和路径:
如果进行SceneView开发可以勾选3D project,这里进行Mapview的展示,无需勾选3D project,选择想要使用的Basemap,一直Next即可。如果机器能直接加载Online底图的话,直接运行程序即可,由于我的虚拟机中无法加载Online的底图,这里使用本地的tpk进行测试,添加如下代码:
TileCache* tileCache = new TileCache(("/home/runtime/World.tpk"), this);
ArcGISTiledLayer* tiledLayer = new ArcGISTiledLayer(tileCache, this);
Basemap *basemap = new Basemap(tiledLayer, this);
m_map = new Map(basemap, this);
运行即可弹出下图:
最后有一点非常重要——就是OpenGL的版本,如果进行SceneView开发,所需要OpenGL的最低版本是3.2,通常虚拟机中的OpenGL版本低于3.2会导致显示不出球体,出现黑屏或者白屏,这时改用实体机或者升级OpenGL版本到3.2就正常了。