- 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以上系统必须配置
|