ArcGIS Runtime SDK for Qt基础入门(一)

1.简介

        ArcGIS Runtime SDK for Qt是基于Qt的二次开发包,以帮助开发者工作完成一些地图开发的一些需求。基于的Qt的ArcGIS开发目前有两个主要版本,一是我们今天介绍的ArcGIS Runtime SDK以及最新的ArcGIS Maps SDK for Qt,ArcGIS Maps是基于完全成熟的 Runtime架构而来的,也是当前官方主推的,ArcGIS Runtime SDK for Qt 100.15.x是长期支持版本,官方只会进行小版本的维护,所以想要体验最新最完善的功能可以下载安装ArcGIS Maps版本,ArcGIS Maps完全基于Qt6开发的,如果有Qt5需求建议使用Runtime版本。

2.Windows环境搭建

        ArcGIS 支持跨平台,包括Windows,Linux,MacOS也支持移动端,如Android和IOS的开发。这里主要针对Windows平台的开发工作。笔者这里使用的开发环境是Visual Studio 2022,Qt5.15.2以及ArcGIS Runtime SDK for Qt V100.15.3版本。VS和Qt的环境搭建不在探讨范围内,主要介绍一下ArcGIS开发包的安装过程。需要去Esri官网去下载对应版本的开发包,需要登陆自己的账号进行下载,可以使用GitHub账号登陆,点击这里进入下载页面:

        选择Windows版本下即可。下载后安装即可,安装过程很简单按照引导一步一步安装即可。打开Qt新建工程,发现已经可以正常创建使用工程项目了。

        对应的帮助文档也嵌入进来了。

3.工程创建

下面我们演示一下工程的创建,新建工程,选择创建ArcGIS Qt Widgets App项目。选择qmake构建系统,其他的默认即可。然后运行

        没有效果,因为网络原因在线地图加载不动。当然ArcGIS是支持离线地图文件的,常用的是tpk,tpkx和mmpk这几种地图包,关于地图文件的制作可以自行百度,这里不做探讨,然后添加以下代码:

// C++ API headers
#include "Basemap.h"

// Other headers
#include "ArcGis.h"

#include "Map.h"
#include "MapGraphicsView.h"
#include "TileCache.h"
#include "ArcGISTiledLayer.h"
#include "Basemap.h"

using namespace Esri::ArcGISRuntime;

ArcGis::ArcGis(QWidget* parent /*=nullptr*/):
    QMainWindow(parent)
{
    // Create a map using the ArcGISStreets BasemapStyle
//    m_map = new Map(BasemapStyle::ArcGISStreets, this);

    TileCache* tileCache = new TileCache("C:/SimuProjects/Map/chinaGgoogle13jpg.tpk", this);
    ArcGISTiledLayer* tiledLayer = new ArcGISTiledLayer(tileCache, this);
    Basemap* basemap = new Basemap(tiledLayer, this);
    m_map = new Map(basemap, this);

    // Create the Widget view
    m_mapView = new MapGraphicsView(this);

    // Set map to map view
    m_mapView->setMap(m_map);

    // set the mapView as the central widget
    setCentralWidget(m_mapView);
}

// destructor
ArcGis::~ArcGis()
{
}

        再次运行,效果显现:

  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值