ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

win10+vs2017+cpp+qt5.12.6+ArcGIS_Runtime_SDK_Qt_Windows_100_6_0,地图显示模块

2020-06-22 12:38:30  阅读:284  来源: 互联网

标签:文件 qt arcgis Windows 地图 tpk ArcGIS 下载 qt5.12


需求:需要在某程序里加一个基于ArcGIS的地图显示模块。
最终四五天才第一次把地图显示出来。
虽然还存在一些疑问,例如在线地图未能显示,但好歹有一条路走通了。
这里记述一下遇到的各种坑和解决方案:
1、windows、vs、qt等环境问题。
以前因为matlab2016只支持x64,被逼上win7、win10、vs2013、cpp、x64、qt5.5.1环境。要加arcgis只能往上走了。
2、ArcGIS用什么开发
我只能选arcgis qt sdk。好像java、C#的参考资料会多些,但我没得选。
3、arcgis等软件的下载问题
官网下载arcgis的qt sdk:https://developers.arcgis.com/downloads/apis-and-sdks/?product=qt 选10.6或以上吧。最新的100.8版本,下了一天多下不下来,这官网下载本身也是坑多,换成10.6下载下来了。10.7下载时好时坏。
10.6支持的qt似乎是从5.12.0开始的。而且这个对应的是vs2017.

arcgis桌面版10.7在https://malagis.com/找下载链接。这个后面要用来做tpk地图文件。

百度网盘下载时,一次下一个,慢慢等。我没找到好用的不限速百度网盘软件。

全能电子地图下载器,这个忘了在哪下找的链接。这个是用来下地图源数据的,下载为默认的png格式即可。然后拼接成不同图层的大图。这个软件的输出作为arcmap的输入,制作tpk文件。

vs2017下载,从官网下一个1m多的程序安装吧,百度网盘的下载链接太坑了,还不如官网。vs选免费的社区版本。

qt的下载。镜像地址如下:
http://mirrors.ustc.edu.cn/qtproject/archive/
http://mirror.bit.edu.cn/qtproject/archive/qt/5.12/5.12.6/
高版本的qt都不分x86x64了,安装时两个都会有。以前的老版本分32、64位,现在高版本不用找x64文件,没有,下下来就知道x64就在x86的里面。

4、arcgis要在官网注册免费的开发者账号。
注册通过后,邮件里面有一个Runtime Lite license key字符串,程序里面要用的。vs最好也注册一个账号,避免麻烦。

5、安装。
麻辣gis网站有arcgis安装说明。那个啥注册问题,差不多都有。
先装vs2017吧,然后是qt5.12.6,然后是arcgis桌面版、arcgis qt sdk、再就是下地图用的“全能电子地图下载器”。

6、下载地图。制作tpk文件。
为啥要tpk文件呢?因为用qt creator创建的arcgis程序,默认地图是Basemap::topographic(this),我猜是在线地图,但无法显示,应该是缺点什么。后来为了快速走出成功的第一步,我找了个tpk文件的代码示例,于是为了tpk文件又踩了几个坑。
首先是下地图,“全能电子地图下载器”自带的帮助文档中有说明,先不要下载太大范围。我选的高德道路地图,输出E:\MapTileDownload\OutPut\高德地图_200621104336_L13\高德地图_200621104336.png 等文件。注意选合适范围和图层。
然后使用arcmap(arcgis桌面版里面的一个子程序)来制作tpk文件,需要注意的是,设置tpk参数时(切片格式、最高细节层次),不要选太高等级的图层,否则2m的png地图跑2天也跑不完。摘要标签不能为空,随便写个字符就行。

7、第一个能显示地图的工程代码。
先用qt5.12.6带的qt creator创建arcgis模板工程。如果找不到,肯定是arcgis qt sdk没装对。设置main函数中的license。

//m_map = new Map(Basemap::topographic(this), this);//这是qt模板给出的代码,未能显示
//以下为自制的tpk离线地图文件,显示正常。
TileCache* tileCache = new TileCache(("E:/MapTileDownload/arcgis/1.tpk"), this);
 ArcGISTiledLayer* tiledLayer = new ArcGISTiledLayer(tileCache, this);
 Basemap *basemap = new Basemap(tiledLayer, this);
 m_map = new Map(basemap, this);

效果图如下
在这里插入图片描述

标签:文件,qt,arcgis,Windows,地图,tpk,ArcGIS,下载,qt5.12
来源: https://blog.csdn.net/weixin_43172531/article/details/106886148

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有