http://lbs.amap.com/api/ios-sdk/guide/draw-on-map/draw-polyline/
高德地图开放平台中对路径显示给开发者提供的接口
想要画出路径第一经纬度的信息,第二轨迹的显示
- 需要我们移动时的位置信息,创建项目,将MapKit框架添加进来。
- 遵循协议CLLocationManagerDelegate, MKMapViewDelegate(这里地图显示就不说了网上好多也就几行代码)。
- 实现方法- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation )oldLocation或者- (void)mapView:(MKMapView )mapView didUpdateUserLocation:(MKUserLocation *)userLocation因为两个方法都能获得我们的位置信息你实现哪个都行。 - 其中第一个方法得到的位置信息需要进行处理:http://blog.csdn.net/swingpyzf/article/details/16972351#0-tsina-1-80473-397232819ff9a47a7b7e80a40613cfe1 使用上面博主的方法处理下位置信息就行了(如果位置不对看下他博客评论)在上面两个方法中把位置信息添加进我们的数组以便使用。
- 在上面方法里面实现
CLLocationCoordinate2D loc = [userLocation coordinate];
NSString *locStr = [NSString stringWithFormat:@”%.5f,%.5f”,loc.latitude,loc.longitude];
if (![_locations.lastObject isEqualToString:locStr]) {
[_locations addObject:locStr];
}
if (_locations.count == 3) {
[_locations removeObjectAtIndex:0];
[self getLocationsData:_locations];
}
/对加进数组的位置信息处理并画线/ (void)getLocationsData:(NSMutableArray *)locationArray {
CLLocationCoordinate2D commonPolylineCoords[locationArray.count];
for (int i = 0; i< 2; i++) {
NSArray *latLonArr = [locationArray[i] componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@”,”]];
CLLocationDegrees latitude = [[latLonArr objectAtIndex:0] doubleValue];
CLLocationDegrees longitude = [[latLonArr objectAtIndex:1] doubleValue];commonPolylineCoords[i].latitude = latitude; commonPolylineCoords[i].longitude = longitude;
}
//构造折线对象
MKPolyline *commonPolyline = [MKPolyline polylineWithCoordinates:commonPolylineCoords count:locationArray.count];
//在地图上添加折线对象
[_mapView addOverlay: commonPolyline];
}显示出路径
(MKOverlayView )mapView:(MKMapView )mapView viewForOverlay:(id)overlay {
if ([overlay isKindOfClass:[MKPolyline class]])
{
MKPolylineView *polylineView = [[MKPolylineView alloc] initWithPolyline:overlay];polylineView.lineWidth = 10.f;
polylineView.strokeColor = [UIColor colorWithRed:0 green:0 blue:1 alpha:0.6];
polylineView.lineJoin = kCALineJoinRound;//连接类型
polylineView.lineCap = kCGLineCapRound;//端点类型return polylineView;
}
return nil;
}