我上次說(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è)置地圖范圍

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ò)勿噴