- NSLocationWhenInUseUsageDescription表示应用在前台的时候可以搜到更新的位置信息。
- NSLocationAlwaysUsageDescription表示应用在前台和后台(suspend或terminated)都可以获取到更新的位置数据。
| 1 2 3 4 5 | - ( void )viewDidLoad { [super viewDidLoad]; _mapView.showsUserLocation = YES; //YES 为打开定位,NO为关闭定位 } |
| 1 2 3 4 5 6 7 8 9 | -( void )mapView:(MAMapView *)mapView didUpdateUserLocation:(MAUserLocation *)userLocation updatingLocation:( BOOL )updatingLocation { if (updatingLocation) { //取出当前位置的坐标 NSLog(@ "latitude : %f,longitude: %f" ,userLocation.coordinate.latitude,userLocation.coordinate.longitude); } } |
- MAUserTrackingModeNone:不跟随用户位置,仅在地图上显示。
- MAUserTrackingModeFollow:跟随用户位置移动,并将定位点设置成地图中心点。
- MAUserTrackingModeFollowWithHeading:跟随用户的位置和角度移动。
| 1 | [_mapView setUserTrackingMode: MAUserTrackingModeFollow animated:YES]; //地图跟着位置移动 |
自定义定位图层
- 通过- (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id <MAAnnotation>)annotation方法中自定义定位标注样式;
- 通过- (MAOverlayView *)mapView:(MAMapView *)mapView viewForOverlay:(id <MAOverlay>)overlay方法自定义定位精度圈的样式。
- (MAOverlayView *)mapView:(MAMapView *)mapView viewForOverlay:(id <MAOverlay>)overlay
{
/* 自定义定位精度对应的MACircleView. */
if (overlay == mapView.userLocationAccuracyCircle)
{
MACircleView *accuracyCircleView = [[MACircleView alloc] initWithCircle:overlay];
accuracyCircleView.lineWidth = 2.f;
accuracyCircleView.strokeColor = [UIColor lightGrayColor];
accuracyCircleView.fillColor = [UIColor colorWithRed:1 green:0 blue:0 alpha:.3];
return accuracyCircleView;
}
return nil;
}
- (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id <MAAnnotation>)annotation
{
/* 自定义userLocation对应的annotationView. */
if ([annotation isKindOfClass:[MAUserLocation class ]])
{
static NSString *userLocationStyleReuseIndetifier = @ "userLocationStyleReuseIndetifier" ;
MAAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:userLocationStyleReuseIndetifier];
if (annotationView == nil)
{
annotationView = [[MAAnnotationView alloc] initWithAnnotation:annotation
reuseIdentifier:userLocationStyleReuseIndetifier];
}
annotationView.image = [UIImage imageNamed:@ "userPosition" ];// 这里的名字填写你要显示的图标
return annotationView;
}
return nil;
}
| 1 2 3 | _mapView.pausesLocationUpdatesAutomatically = NO; _mapView.allowsBackgroundLocationUpdates = YES; //iOS9以上系统必须配置 |
















