iOS 百度地圖軌跡回放

我上次說(shuō)的設(shè)置大頭針的圖片的方法,設(shè)置完了是不是發(fā)現(xiàn)圖片位置不對(duì)?然后又沒(méi)法微調(diào)位置對(duì)不對(duì)?

1.重新定義一個(gè)類繼承BMKAnnotationView,并重寫(xiě)

初始化并返回一個(gè)annotation view

@param annotation關(guān)聯(lián)的annotation對(duì)象

@param reuseIdentifier如果要重用view,傳入一個(gè)字符串,否則設(shè)為nil,建議重用view

@return初始化成功則返回annotation view,否則返回nil

樓主實(shí)例代碼

- (id)initWithAnnotation:(id)annotation reuseIdentifier:(NSString*)reuseIdentifier {

self= [superinitWithAnnotation:annotationreuseIdentifier:reuseIdentifier];這句話必須有

if(self) {

[selfsetBounds:CGRectMake(0.f,0.f,22.f,22.f)];

_imageView= [[UIImageViewalloc]initWithFrame:CGRectMake(0.f,0.f,22.f,22.f)];微調(diào)位置

_imageView.image= [UIImage imageNamed:@"sportarrow.png"];

[selfaddSubview:_imageView];

}

returnself;

}

1.初始化軌跡點(diǎn)

1.1你得把你的起點(diǎn)和終點(diǎn)顯示出來(lái)吧(你得先有經(jīng)緯度數(shù)據(jù))

1.2存儲(chǔ)所有位置

BMKMapPoint *points =new BMKMapPoint[count]; C++編譯,文件至少保持一個(gè).mm文件

1.3清除其他劃線,并添加軌跡

根據(jù)指定坐標(biāo)點(diǎn)生成一段折線

param points指定的直角坐標(biāo)點(diǎn)數(shù)組

count坐標(biāo)點(diǎn)的個(gè)數(shù)

新生成的折線對(duì)象

self.polyLine= [BMKPolyline polylineWithPoints:points count:count];

1.4添加軌跡

[self.map ViewaddOverlay:self.polyLine];

1.5根據(jù)polyline設(shè)置地圖范圍


就是這個(gè)方法


1.6計(jì)算兩點(diǎn)之間的距離(有這個(gè)才能設(shè)置動(dòng)畫(huà)時(shí)間)

#pragma計(jì)算兩點(diǎn)距離

-(double)reckonNodeDistance : (CLLocationCoordinate2D)startCoordina andEndNode : (CLLocationCoordinate2D)endCoordina{

CLLocation*orig=[[CLLocationalloc]initWithLatitude:startCoordina.latitudelongitude:startCoordina.longitude] ;

CLLocation* dist=[[CLLocationalloc]initWithLatitude:endCoordina.latitudelongitude:endCoordina.longitude];

CLLocationDistance kilometers=[orig distanceFromLocation:dist]/1000;

return kilometers;(雙精度)

}


1.7軌跡運(yùn)行動(dòng)畫(huà)

-(void)creatCarTrailPoint:(CLLocationCoordinate2D)coordina title:(NSString*)title distance : (double)distancecarSpeed : (double) speed{

[_mapViewsetZoomLevel:11];

//_sportAnnotationView.imageView.transform = CGAffineTransformMakeRotation([[[_requestData objectForKey:@"data"][timerNum + 2] objectForKey:@"msg_direction "] doubleValue]);

[UIView animateWithDuration:diatance/speed animations:^{

_car_trail_point.coordinate= coordina;

_car_trail_point.title= title;

[self.mapViewaddAnnotation:_car_trail_point];

BMKCoordinateRegionregion;

region.center= coordina;

[_mapViewsetRegion:regionanimated:YES];

}completion:nil];

}

使用動(dòng)畫(huà)效果來(lái)改變大頭針經(jīng)緯度可以實(shí)現(xiàn)平移效果,用計(jì)算的距離和速度來(lái)獲取動(dòng)畫(huà)時(shí)間

注:以上純屬個(gè)人思路,建議新手學(xué)習(xí)。大神路過(guò)勿噴

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容