首先初始化的时候设置好底图,并且设置好点的图层,以及线的图层

m_graphicsOverlay = new GraphicsOverlay(this);  //新建图层m_mapView->graphicsOverlays()->append(m_graphicsOverlay);  //将图层添加到地图testmarkerGraphic = new Graphic(this);  //初始化点击markerSimpleMarkerSymbol* markerSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbolStyle::Circle, QColor("red"), 10.0f, this);  //这个代表是点标记testmarkerGraphic->setSymbol(markerSymbol);m_graphicsOverlay->graphics()->append(testmarkerGraphic);SimpleLineSymbol* pathSymbol = new SimpleLineSymbol(SimpleLineSymbolStyle::Solid, QColor("blue"), 5.0f /*width*/, this);  //初始化linem_pathGraphic = new Graphic(this);m_pathGraphic->setSymbol(pathSymbol);m_graphicsOverlay->graphics()->append(m_pathGraphic);

当鼠标点击的时候我在地图上绘制并且记录第一个点。我使用一个列表将他存起来,当这个列表大于2 的时候,我就可以进行绘制线了,不过首先需要将坐标转化为地图坐标,不知道的小伙伴可以查看我写的坐标转化。

QList <Point> m_List;
Point point = m_mapView->screenToLocation(event.x(), event.y());  //本地坐标转地图坐标
Point geometryWgs84 = GeometryEngine::project(point, SpatialReference::wgs84());   //坐标转化
m_List.append(geometryWgs84);
if (m_List.size() >= 2){const QList<Point> points = { m_List[0], m_List[1] };const Polyline polyline = pointsToPolyline(points);constexpr double maxSegmentLength = 1.0;const LinearUnit unitOfMeasurement(LinearUnitId::Kilometers);constexpr GeodeticCurveType curveType = GeodeticCurveType::Geodesic;const Geometry pathGeometry = GeometryEngine::densifyGeodetic(polyline, maxSegmentLength, unitOfMeasurement, curveType);m_pathGraphic->setGeometry(pathGeometry);qDebug() << "aaaaa::" << QString::number(GeometryEngine::lengthGeodetic(pathGeometry, unitOfMeasurement, curveType), 'f', 2);  //测距}
Polyline T3::pointsToPolyline(const QList<Point>& points)
{PolylineBuilder polylineBuilder(SpatialReference(4326));  //将2个点传入for (const Point& point : points)polylineBuilder.addPoint(point);return polylineBuilder.toPolyline();
}

效果图:

以及显示的公里数:

经过我的验证,没有任何问题
ヾ( ̄▽ ̄)ByeBye

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

  1. Arcgis for Android在地图上画多边形并进行边长、周长和面积的测量

    Arcgis for Android的地图操作里,放大缩小地图.图层切换.定位.测距测面等都是它的一些基本操作,封装后一般调用就是了,很简单.不过最近有了个需求,在地图上画一个多边形时候同时进行多边形 ...

  2. ArcGIS根据经纬度在地图上添加坐标点

    文章目录 前言 步骤 1.添加底图 2.制作经纬度表格 3.添加数据 4.显示xy数据 (1)显示XY数据对应的字段 (2)添加地理坐标系 5.添加经纬网等作图要素 结果展示与修改 总结 前言 常常需 ...

  3. 微信小程序在地图上标点 markers 画圈显示范围 circles

    源代码: var EARTH_RADIUS = 6378.137; //地球半径 Page({/*** 页面的初始数据*/data: {// 存放当前位置经纬度latitude: "&quo ...

  4. android百度地图api两点画线,android百度地图:在地图上绘制点、线、多边形、圆形和文字...

    转载自:http://blog.csdn.net/rt77777/article/details/9186691 首先介绍一个类:GraphicsOverlay 这是一个在地图上绘制图形的overla ...

  5. Android百度地图绘制多边形,android百度地图:在地图上绘制点、线、多边形、圆形和文字...

    首先介绍一个类:GraphicsOverlay 这是一个在地图上绘制图形的overlay.GraphicsOverlay通过调用setData(Graphic g) 完成图形绘制. Graphic 通 ...

  6. 使用Matlab在地图上根据经纬度画出轨迹的简单方法

    工作中收集到一些经纬度信息,需要在地图上画出来以便识别运行路线.对比了不少方法,觉得直接用Matlab内置的函数调用在线地图,并且在在线地图上绘图,是最简单的.具体代码如下,其中XY是自己新建的矩阵, ...

  7. android百度地图:在地图上绘制点、线、多边形、圆形和文字

    首先介绍一个类:GraphicsOverlay 这是一个在地图上绘制图形的overlay.GraphicsOverlay通过调用setData(Graphic g) 完成图形绘制. Graphic 通 ...

  8. 在地图上绘制实时轨迹线和方向箭头

    下图所示是最终实现效果: 技术点分析 在地图上根据一串经纬度坐标点画红色轨迹线和添加白色箭头百度地图和谷歌地图都已经有对应API实现,只要有正确的数据就可以.难点在于要正确标识出Annotation白 ...

  9. 百度地图MapV实现海量数据画线、点聚合等功能

    前言 MapVGL,是一款基于WebGL的地理信息可视化库,可以用来展示大量基于3D的地理信息点线面数据.设计初衷主要是为了解决大数据量的三维地理数据展示问题及一些炫酷的三维效果. 官网地址:MapV ...

  10. 百度地图坐标点轨迹画线php,百度地图绘制轨迹点

    没有后台获取事实信息 都是伪数据- -轨迹信息做不到事实导航. 控件可以根据自己的需求添加 位置通过offset:new BMAP.Size(x,y)进行微调 事实路况信息需要通过引没有后台获取事实信 ...

最新文章

  1. linux文本分析利器awk
  2. 宏基因组理论教程7挖掘微生物组生物标记
  3. beta book读书俱乐部的构思
  4. 关于联邦学习What、How、Who的灵魂三问
  5. yolo-v2 v3实现笔记 mAP:mean average precision 平均精度均值
  6. SpringBoot学习笔记(4)----SpringBoot中freemarker、thymeleaf的使用
  7. jsp人事管理系统_Jsp+Ssm+Mysql实现的医院人事管理系统源码附带视频运行教程
  8. Python爬虫小白入门(六)爬取披头士乐队历年专辑封面-网易云音乐
  9. img atl和a title
  10. 图片处理和验证码识别
  11. ffmpeg js转换音频_浏览器音频兼容和ffmpeg的音频转码使用
  12. .NET基础拾遗(1)类型语法基础和内存管理基础
  13. 算法笔记--卢卡斯定理
  14. Python——查看帮助手册
  15. 福建农林大学统计学和计算机,福建农林大学特色专业介绍_统计学_专业课程介绍_专业排名_就业方向...
  16. jwplayer播放器初探
  17. 吉林大学操作系统上机随笔《实验二》
  18. 中国矿业大学考研计算机应用技术,2020中国矿业大学计算机专业课考试科目变动...
  19. CSS盒子模型(内容区、边框、内外边距)
  20. 主流智能手机屏幕材质介绍 及 LCD闪屏现象分析

热门文章

  1. 前端传递数组给后端,多个相同key,对应不同值
  2. hostname hostnamectl 显示、设置主机名
  3. vgcreate 创建卷组
  4. linux计划任务没有运行,linux下定时任务不能执行
  5. js休眠5秒_JS 之秒开方案大全
  6. Java监测他人的消息_Java中的Listener 监听器
  7. NodeJS对mysql数据库的简单操作
  8. securecrt是什么工具_更效率、更优雅 | 阿里巴巴开发者工具不完全盘点
  9. python给一个不多于5位的正整数 要求_python作业题2 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。...
  10. [EffectiveC++]item3:尽可能使用const