android高德地图轨迹纠偏,RoutePath-(高德地图)根据定位点绘制路线+轨迹纠偏
轨迹纠偏的作用就是去掉绘制路线时候两个定位点之间产生的毛刺和尖角,使路线看起来更加的圆滑,正常
IMG_0323.PNG
- (void) DrawLine{
CLLocationCoordinate2D coordinate;
CLLocation *location;
NSMutableArray * array = [NSMutableArray array];
for (int i = 0; i < self.locations.count; i++) {
coordinate.latitude = [self.latitudes[i] floatValue];
coordinate.longitude = [self.longitudes[i] floatValue];
location = [[CLLocation alloc]initWithLatitude:coordinate.latitude longitude:coordinate.longitude];
[self.tempTraceLocations addObject:location];
[array addObject:location];
}
}
- (MAOverlayRenderer *)mapView:(MAMapView *)mapView rendererForOverlay:(id )overlay
{
if ([overlay isKindOfClass:[MAPolyline class]])
{
MAPolylineRenderer *polylineRenderer = [[MAPolylineRenderer alloc] initWithPolyline:overlay];
polylineRenderer.lineWidth = 4.0f;
polylineRenderer.strokeColor = KMainColor;
polylineRenderer.lineJoinType = kMALineJoinRound;
polylineRenderer.lineCapType = kMALineCapRound;
return polylineRenderer;
}
return nil;
}
- (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id)annotation
{
if ([annotation isKindOfClass:[MAPointAnnotation class]]){
static NSString *pointReuseIndetifier = @"driverReuseIndetifier";
MAAnnotationView *annotationView = (MAAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:pointReuseIndetifier];
if (annotationView == nil){
annotationView = [[MAAnnotationView alloc] initWithAnnotation:annotation
reuseIdentifier:pointReuseIndetifier];
}
if (![annotation isKindOfClass:[MANaviAnnotation class]])
{
/* 起点. */
if ([[annotation title] isEqualToString:(NSString*)RoutePlanningViewControllerStartTitle])
{
annotationView.image = [UIImage imageNamed:@"起点icon"];
//设置中心点偏移,使得标注底部中间点成为经纬度对应点
annotationView.centerOffset = CGPointMake(0, -(CURRENT_SIZE(24)/2));
}
/* 终点. */
else if([[annotation title] isEqualToString:(NSString*)RoutePlanningViewControllerDestinationTitle])
{
annotationView.image = [UIImage imageNamed:@"终点icon"];
//设置中心点偏移,使得标注底部中间点成为经纬度对应点
annotationView.centerOffset = CGPointMake(0, -(CURRENT_SIZE(24)/2));
}
}
return annotationView;
}
return nil;
}
#pragma mark -------------------- 轨迹纠偏 --------------------
- (void)queryTraceWithLocations:(NSArray *)locations withSaving:(BOOL)saving
{
NSMutableArray *mArr = [NSMutableArray array];
for(CLLocation *loc in locations)
{
MATraceLocation *tLoc = [[MATraceLocation alloc] init];
tLoc.loc = loc.coordinate;
tLoc.speed = loc.speed * 3.6; //m/s 转 km/h
tLoc.time = [loc.timestamp timeIntervalSince1970] * 1000;
tLoc.angle = loc.course;
[mArr addObject:tLoc];
}
__weak typeof(self) weakSelf = self;
__unused NSOperation *op = [self.traceManager queryProcessedTraceWith:mArr type:-1 processingCallback:nil finishCallback:^(NSArray *points, double distance) {
NSLog(@"trace query done!");
[weakSelf addFullTrace:points];
} failedCallback:^(int errorCode, NSString *errorDesc) {
NSLog(@"Error: %@", errorDesc);
// weakSelf.queryOperation = nil;
}];
}
我是Renjiee 我要做最骚的程序猿
android高德地图轨迹纠偏,RoutePath-(高德地图)根据定位点绘制路线+轨迹纠偏相关推荐
- 地图轨迹图怎么做?可以自己绘制路线的地图
地图轨迹图是一种用于表示某个物体在某段时间内的移动轨迹的图表.它可以帮助我们更好地理解物体的移动轨迹,从而更好地分析和研究物体的移动轨迹. 地图轨迹图的制作需要以下几个步骤: 1.准备数据:首先,需要 ...
- python绘制三维轨迹_Python学习(一) —— matplotlib绘制三维轨迹图
在研究SLAM时常常需要对其输出的位姿进行复现以检测算法效果,在ubuntu系统中使用Python可以很好的完成相关的工作. 一. Ubuntu下Python的使用 在Ubuntu下使用Python有 ...
- 用python画动态三维轨迹_Python学习(一) —— matplotlib绘制三维轨迹图
在研究SLAM时常常需要对其输出的位姿进行复现以检测算法效果,在ubuntu系统中使用Python可以很好的完成相关的工作. 一. Ubuntu下Python的使用 在Ubuntu下使用Python有 ...
- vue人员轨迹_Vue项目(vuecli3.0搭建)集成高德地图实现路线轨迹绘制
先看最后实现的效果图 高德地图api文档 使用 1.在index.html里面引入高德地图js文件 2.引入之后我们就直接可以在vue组件里面使用了 创建initMap方法,在mounted钩子函数中 ...
- Android 高德地图 Polyline 实时绘制行动轨迹
前言 项目需求,需要做一个绘制行动轨迹的功能,因为本身项目集成的是高德地图,所以在此处,就针对高德地图来简单说一下绘制行动轨迹的功能. 使用到的功能 显示地图 定位 轨迹 实时位置信息存储 说明 实现 ...
- 解决高德地图锁屏黑屏定位不更新,高德地图绘制定位轨迹,高德定位判断定位停留点,高德地图将所有坐标绘制在可视区域内
本文章主要介绍 高德定位锁屏黑屏定位不更新的问题. 实现流程是:程序开始阶段正常执行定位,注册监听锁屏监听,唤醒cpu监听,当锁屏 广播每2秒发起一起单次定位唤醒.源码如下: package net. ...
- Android高德地图基本开发/在线高德离线地图开发/断网使用离线地图(Assets文件夹的使用)
文章目录 高德SDK基本使用 前置操作 需求一:显示地图,并以当前所在位置为中心 权限申请 布局功能代码 活动功能代码 效果展示 需求二:离线地图(直接添加到应用端项目内) 需求三 :点击数据后以数据 ...
- Android接入高德地图SDK 一引入高德sdk
SHA1的获取: 然后输入cd .android 回车 在输入:keytool -list -v -keystore debug.keystore 在回车,密钥默认 android 添加 jar 文件 ...
- android+高德地图教程,Android高德地图开发(三)地图简单操作
一.概述 上一节中我们了解到地图的定位,图层切换,离线地图等基础操作,接下来学习地图的基本操作. 二.本章内容 --- 地图交互设置 --- 地图绘制 1.地图交互设置 在使用地图的时候,不可避免的会 ...
最新文章
- 网络营销过程中如何避免网站的过度优化情况的发生?
- mysql+影响的行数+获取_我们如何获得受MySQL查询影响的总行数?
- www.python123.com_Python123
- Python 程序员最常犯的十个错误,作为小白的你是不是也经常犯?
- Android 切换系统语言源码分析
- 广西区计算机一级全称是,计算机一级考试(广西区)历年真题-20210412075414.pdf-原创力文档...
- python3生成器_Python3 生成器
- Hibernate sql查询
- Pandas列百分数转化为小数
- 利兹大学计算机硕士专业排名,2020年利兹大学数学与计算机科学硕士专业硕士申请条件-学费-世界排名...
- 微软IT规划方法论解读
- iOS-蓝牙4.0开发(踩过的坑)
- 为啥vb被计算机二级取消,计算机二级vb考试是不是今年最后一年
- 读书笔记 - Thoughts on interaction design (第二版) - 交互设计沉思录
- 正点原子ATK-LORA-01无线串口代码移植+STM32F103C8T6(标准库)
- 智能秤方案设计——蓝牙体脂秤PCBA方案
- spring相关:spring介绍与两大核心容器
- 架构师小跟班:教你从零开始申请和配置七牛云免费OSS对象存储(不能再详细了)
- Java 之父求职被嫌年纪大,硅谷公司现在喜欢“小鲜肉”,不爱“老古董” 作者:程序媛Adele
- 3.GoolgeProtoBuffer序列化反序列化
热门文章
- 一篇文章带你摸清高保真、低保真原型间的区别
- 如何高效工作,手把手教你制定自己的时间表-20200408(第1期)
- 服务器显示内存错误怎么办,服务器怎么查看内存故障
- bit、Byte、bps、Bps、pps、Gbps的详细说明及换算
- MySQL数据库CPU飙升到100%解决方案
- 基于springboot实现学校线上教学平台管理系统【源码+论文】
- 笑出腹肌,程序员从不撒谎,但注释却会
- 使用广播信道的数据链路层相关知识点
- html中确认密码怎么,HTML确认密码
- linux 命令安装 wine,Wine安装使用(适用Linux Mint 19与Ubuntu 18.04下)