RoutePath-(高德地圖)根據(jù)定位點(diǎn)繪制路線+軌跡糾偏

軌跡糾偏的作用就是去掉繪制路線時(shí)候兩個(gè)定位點(diǎn)之間產(chǎn)生的毛刺和尖角威鹿,使路線看起來(lái)更加的圓滑,正常

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 <MAOverlay>)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<MAAnnotation>)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]])
        {
            /* 起點(diǎn). */
            if ([[annotation title] isEqualToString:(NSString*)RoutePlanningViewControllerStartTitle])
            {
                annotationView.image = [UIImage imageNamed:@"起點(diǎn)icon"];
                //設(shè)置中心點(diǎn)偏移,使得標(biāo)注底部中間點(diǎn)成為經(jīng)緯度對(duì)應(yīng)點(diǎn)
                annotationView.centerOffset = CGPointMake(0, -(CURRENT_SIZE(24)/2));

            }
            /* 終點(diǎn). */
            else if([[annotation title] isEqualToString:(NSString*)RoutePlanningViewControllerDestinationTitle])
            {
                annotationView.image = [UIImage imageNamed:@"終點(diǎn)icon"];
                //設(shè)置中心點(diǎn)偏移科雳,使得標(biāo)注底部中間點(diǎn)成為經(jīng)緯度對(duì)應(yīng)點(diǎn)
                annotationView.centerOffset = CGPointMake(0, -(CURRENT_SIZE(24)/2));

            }
        }
        return annotationView;
    }
    
    
    return nil;
}
#pragma mark -------------------- 軌跡糾偏 --------------------
- (void)queryTraceWithLocations:(NSArray<CLLocation *> *)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  轉(zhuǎn) 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<MATracePoint *> *points, double distance) {
        
        NSLog(@"trace query done!");
        [weakSelf addFullTrace:points];

        
    } failedCallback:^(int errorCode, NSString *errorDesc) {
        
        NSLog(@"Error: %@", errorDesc);
//        weakSelf.queryOperation = nil;
    }];
    
}

GitHub代碼下載地址
喜歡的記得給個(gè)Star

我是Renjiee 我要做最騷的程序猿??????

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末简逮,一起剝皮案震驚了整個(gè)濱河市尿赚,隨后出現(xiàn)的幾起案子散庶,更是在濱河造成了極大的恐慌凌净,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件须教,死亡現(xiàn)場(chǎng)離奇詭異斩芭,居然都是意外死亡乐疆,警方通過(guò)查閱死者的電腦和手機(jī)贬养,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)煤蚌,“玉大人,你說(shuō)我怎么就攤上這事√懊恚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵这橙,是天一觀的道長(zhǎng)导披。 經(jīng)常有香客問(wèn)我,道長(zhǎng)撩匕,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任止毕,我火速辦了婚禮扁凛,結(jié)果婚禮上忍疾,老公的妹妹穿的比我還像新娘谨朝。我一直安慰自己,他們只是感情好字币,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布纬朝。 她就那樣靜靜地躺著收叶,像睡著了一般共苛。 火紅的嫁衣襯著肌膚如雪蜓萄。 梳的紋絲不亂的頭發(fā)上澄峰,一...
    開(kāi)封第一講書(shū)人閱讀 49,821評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音绸硕,去河邊找鬼。 笑死玻佩,一個(gè)胖子當(dāng)著我的面吹牛席楚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播烦秩,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼只祠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了抛寝?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤猴凹,失蹤者是張志新(化名)和其女友劉穎岭皂,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體爷绘,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡土至,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了骡苞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡解幽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出片部,到底是詐尸還是另有隱情霜定,我是刑警寧澤档悠,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布辖所,位于F島的核電站曾雕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏剖张。R本人自食惡果不足惜揩环,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望顾犹。 院中可真熱鬧褒墨,春花似錦、人聲如沸郁妈。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)胃碾。三九已至,卻和暖如春厕隧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背髓迎。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工挡爵, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人涣雕。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓妄迁,卻偏偏與公主長(zhǎng)得像兑障,于是被迫代替她去往敵國(guó)和親蕉汪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,777評(píng)論 25 707
  • 跑步運(yùn)動(dòng)軟件最基本的功能之一,就是對(duì)運(yùn)動(dòng)中的用戶進(jìn)行實(shí)時(shí)定位革砸,并繪制出運(yùn)動(dòng)路徑。本文主要內(nèi)容算利,就是用高德的SDK實(shí)...
    msq3閱讀 7,682評(píng)論 10 24
  • 提起現(xiàn)代的管理思想泳姐,永遠(yuǎn)繞不開(kāi)的一個(gè)人就是偉大的泰勒仗岸,作為現(xiàn)代科學(xué)管理之父,其思想一直影響著企業(yè)的方方面面较锡。無(wú)論是...
    凱多和玲玲閱讀 7,118評(píng)論 0 3
  • 2017年的高考剛剛結(jié)束骡楼,我的朋友圈、微博便被高考作文刷屏引镊,各種調(diào)侃篮条,各種戲說(shuō),究其原因赴恨,不過(guò)是因?yàn)槌烁呖甲魑耐?..
    簡(jiǎn)言依依閱讀 213評(píng)論 2 2
  • 文:@慢慢行走的玄子 熒光燈如何工作伦连?在熒光燈電路中钳垮,從插頭的左手尖端開(kāi)始,電流通過(guò)燈絲中一條汛聚,通過(guò)起動(dòng)器中的閉合...
    慢慢行走的玄子閱讀 709評(píng)論 0 1