当前位置: 首页 > news >正文

ArcGis地图

1、概述

官网:https://developers.arcgis.com/qt/
官网:官网指导
官网:Add graphics to a map view
Arcgis runtime sdk for Qt 开发记录(系列文章)

2、创建地图

//online:
m_mapView = new MapGraphicsView(this);    
m_map = new Map(Basemap::lightGrayCanvas(this), this);    
m_mapView->setMap(m_map); 
pMainLayout->addWidget(m_mapView);
setCentralWidget(pMainWidget);
m_mapView->setAttributionTextVisible(false);
//本地
m_mapView = new MapGraphicsView(this);  	//初始化mapview窗体
TileCache *titlecahe=new TileCache(("C:/Users/dujia/Desktop/aaa.tpk"),this);  //加载本地apk
ArcGISTiledLayer *titleLayer=new ArcGISTiledLayer(titlecahe,this);  //新建平铺图层
Basemap *baseMap=new Basemap(titleLayer);  	//底图-----------
m_map = new Map(baseMap, this);  			//加载底图
m_mapView->setMap(m_map);  					//将地图设置到map_view

3、定位、旋转、缩放

void Arcgis_demo::addButtons(QVBoxLayout* layout)
{// 定位QPushButton* pButtonLocate = new QPushButton("locate");connect(pButtonLocate, &QPushButton::clicked, this, [this](){// 经纬度坐标,这里用了“天坛公园”的位置Point pt(116.4104, 39.8818, SpatialReference::wgs84());// 比例尺设置double scale = 30000.0;m_mapView->setViewpointCenter(pt, scale);});layout->addWidget(pButtonLocate);// 旋转 30°QPushButton* pButtonRotate = new QPushButton("rotate");connect(pButtonRotate, &QPushButton::clicked, this, [this](){double cur_rotation = m_mapView->currentViewpoint(ViewpointType::CenterAndScale).rotation();cur_rotation += 30.0;m_mapView->setViewpointRotation(cur_rotation);});layout->addWidget(pButtonRotate);// 放大QPushButton* pButtonZoomIn = new QPushButton("zoom in");connect(pButtonZoomIn, &QPushButton::clicked, this, [this](){double cur_scale = m_mapView->currentViewpoint(ViewpointType::CenterAndScale).targetScale();cur_scale -= 10000.0;m_mapView->setViewpointScale(cur_scale);});layout->addWidget(pButtonZoomIn);// 缩小QPushButton* pButtonZoomOut = new QPushButton("zoom out");connect(pButtonZoomOut, &QPushButton::clicked, this, [this](){double cur_scale = m_mapView->currentViewpoint(ViewpointType::CenterAndScale).targetScale();cur_scale += 10000.0;m_mapView->setViewpointScale(cur_scale);});layout->addWidget(pButtonZoomOut);
}

4、鼠标点坐标

void T3::onMouseClicked(QMouseEvent &event)
{//单机地图时触发Point point = m_mapView->screenToLocation(event.x(), event.y());  //本地坐标转地图坐标qDebug() << "point::" <<point << ":::" << point.x()<<"::"<<point.y();Geometry geometryWgs84 = GeometryEngine::project(point, SpatialReference::wgs84());   //坐标转化qDebug() << "pointxxxxxx:::" << geometryWgs84;
}

5、画线测距

t和arcgis for qt在地图上做测距(画线和显示距离,单位km)

http://www.lryc.cn/news/156018.html

相关文章:

  • Chrome 和 Edge 上出现“status_breakpoint”错误解决办法
  • 华为AP升级操作记录
  • 面试系列 - String字符串使用详解
  • 1782_Adobe Reader X实现pdf分页保存
  • 筛选图片,写JSON文件和复制
  • C++并发编程:构建线程安全队列(第二部分:细粒度锁)
  • 浅述C++内存管理——new与malloc的不同
  • 语言基础篇11——函数、函数参数类型、装饰器、生成器
  • linux jar包class热部署 工具 arthas安装及使用
  • Android studio 调整jar包顺序
  • 用Qt写的机器视觉绘图工具
  • Spring Boot 打包,将依赖全部打进去
  • SpringCloud入门实战(十五)分布式事务框架Seata简介
  • MySQL数据库 主从复制与读写分离
  • Qt day2
  • JavaScript - 好玩的打字动画
  • rpm打包
  • 匠心新品:大彩科技超薄7寸WIFI线控器发布,热泵、温控器、智能家电首选!
  • 华为云云服务器评测|使用云耀云服务器L实例部署Portainer工具
  • C++并发编程:构建线程安全队列(第一部分:粗粒度锁)
  • C++设计模式-更新中
  • Hydra工具的使用
  • Pytorch学习:卷积神经网络—nn.Conv2d、nn.MaxPool2d、nn.ReLU、nn.Linear和nn.Dropout
  • 水果库存系统(SSM+Thymeleaf版)
  • 如何在VueJS应用程序中设置Toast通知
  • css让元素保持等比例宽高
  • 骨传导和入耳式哪个危害大一点?入耳式和骨传导哪种好?
  • 介绍OpenCV
  • Android中的view绘制流程,简单理解
  • 商城开发:店铺管理系统应具备哪些功能?