一、百度地图轨迹画线:
1、集成百度地图,申请并配置好Appkey,在视图控制器中初始化一个百度地图
//初始化百度地图
_mapView = [[BMKMapView alloc] initWithFrame:CGRectMake(0, 64, SCREEN_WIDTH, SCREEN_HEIGHT-64)];
[self.view addSubview:_mapView];
2、准备好一串GPS坐标点,这里我自己弄了一个Json文件:route_points_demo.json,在文件中放了32个GPS坐标,直接从这个文件中将数据获取到放到数组中:
//准备GPS数据
- (void)setJUNKdata {
trackArray = [[NSMutableArray alloc] init];
//读取Json文件中的GPS坐标点
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"route_points_demo" ofType:@"json"];
NSString *jsonStr = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
NSData *jaonData = [[NSData alloc] initWithData:[jsonStr dataUsingEncoding:NSUTF8StringEncoding]];
allTrack = [NSJSONSerialization JSONObjectWithData:jaonData options:(NSJSONReadingMutableContainers) error:nil];
//将坐标点放进数组trackArray中
for(int i=0; i<allTrack.count; i++) {
NSDictionary *dic = allTrack[i];
double lat = [[dic valueForKey:@"latitude"] doubleValue];
double lon = [[dic objectForKey:@"longitude"] doubleValue];
CLLocation *location = [[CLLocation alloc] initWithLatitude:lat longitude:lon];
[trackArray addObject:location];
}
[self addCovering];
}
3、调用addCovering进行轨迹画线,将CLLocationCoordinate2D数组转换成CLLocation类型的数组,然后以此数组来初始化一个BMKPolyline,最后调用百度地图的画折线的方法:addOverlay
//地图画线
- (void)addCovering{
CLLocation *current;
CLLocationCoordinate2D track[trackArray.count];
for(int i=0; i<trackArray.count; i++){
current = trackArray[i];
track[i].latitude = current.coordinate.latitude;
track[i].longitude = current.coordinate.longitude;
}
//轨迹画线
BMKPolyline* polyline = [BMKPolyline polylineWithCoordinates:track count:trackArray.count];
[_mapView addOverlay:polyline];
}
4、调用了addOverlay后,会自动回调一个方法:
- (BMKOverlayView *)mapView:(BMKMapView *)mapView viewForOverlay:(id <BMKOverlay>)overlay{
//添加标注
if ([overlay isKindOfClass:[BMKPolyline class]]){
BMKPolylineView* polylineView = [[BMKPolylineView alloc] initWithOverlay:overlay];
polylineView.strokeColor = MCOLOR_707070; //线的颜色
polylineView.lineWidth = 4.0; //线的宽度
return polylineView;
}
return nil;
}
5、就这样,轨迹划线完成 !看效果图
附:坐标文件route_points_demo.json下载地址:
http://download.csdn.net/download/luohancc/9109923