参考ArcGIS Maps SDK for Qt
参考Display a map
安装
预先安装的软件
安装ArcGIS SDK
点击ArcGIS Maps SDK for Qt
注册账号
要注册成developer版本用户的,不然之后可能没办法生成API
下载
下载之后安装,一路next就可以了
在QT中创建ArcGIS项目
new project,选择cpp或者qml创建(取决于你用cpp方式修改程序还是用qml方式修改程序)
构建套件
选择的是
因为这个支持Qt 6.2以上的,如果用原来的Qt 5.15会出错;MSVC选的是2019版本的
配置环境
如果出现“xxx.lib","xxx,h"找不到的错误,多半是环境变量的原因,修改环境变量中的INCLUDE和LIB变量
运行
导入地图
设置API key
在developer dashboard复制API KEY,将来粘贴到main.cpp中
导入shp文件
Layers页面选择import data,把.dbf,.prj,qix,shp,shx全部打包成一个zip文件然后将ZIP文件上传,选择"shapefile"格式。导入成功之后,创建Layers。这个时候就会生成一个URL,将这个URL导入到程序中。
修改程序
包括QML版本和CPP版本的,这里以QML版本为例
添加API KEY 至main.cpp中
添加map
Map {
// add the ArcGISStreets basemap to the map
initBasemapStyle: Enums.BasemapStyleArcGISNavigation
initialViewpoint: viewpoint
FeatureLayer {
ServiceFeatureTable {
url: "xxxxxxx(导入图层之后生成的url)"
}
}
}
ViewpointCenter{
id:viewpoint
center:Point{
x:xxx
y:xxx
spatialReference: SpatialReference {wkid: 4326}
}
targetScale: 100000.0
}
然后运行。