iOS:获取用户位置的最佳方式
我有一个MKMapView类,我想在地图上显示由图像表示的用户位置。 因此,我阅读了本教程: 这家伙在视图上使用locationmanager,我需要在MKMapView上使用它 对我来说,最好的方法就是创建一个类来控制用户的位置? 我该怎么做iOS:获取用户位置的最佳方式,ios,map,geolocation,Ios,Map,Geolocation,我有一个MKMapView类,我想在地图上显示由图像表示的用户位置。 因此,我阅读了本教程: 这家伙在视图上使用locationmanager,我需要在MKMapView上使用它 对我来说,最好的方法就是创建一个类来控制用户的位置? 我该怎么做 谢谢 首先,您希望位置显示在地图上: yourMapView.showsUserLocation=YES 然后,您需要处理用于显示用户位置的annotationview的委托方法: - (MKAnnotationView *)mapView:(MKMap
谢谢 首先,您希望位置显示在地图上:
yourMapView.showsUserLocation=YES代码>
然后,您需要处理用于显示用户位置的annotationview的委托方法:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id < MKAnnotation >)annotation {
if ([annotation isKindOfClass:[MKUserLocation class]]) {
// Create a custom MKAnnotationView here that will display your image.
}
}
-(MKAnnotationView*)地图视图:(MKMapView*)地图视图用于注释:(id)注释{
if([annotation isKindOfClass:[MKUserLocation类]]){
//在此处创建自定义MKAnnotationView,以显示您的图像。
}
}
确保在MKMapView
上正确设置委托。为此,您需要实现MKAnnotation
&MKMapView
委托
实现此方法以将默认pin更改为自定义图像
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[MKUserLocation class]])
{
// Create a custom MKAnnotationView here that will display your image.
//user current location
}
static NSString *identifier = @"MyLocation";
if ([annotation isKindOfClass:[MyLocation class]])
{
MKPinAnnotationView *annotationView = (MKPinAnnotationView *) [_mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
if (annotationView == nil)
{
annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
}
else
{
annotationView.annotation = annotation;
}
annotationView.enabled = YES;
annotationView.canShowCallout = YES;
annotationView.image=[UIImage imageNamed:@"yourImage.png"];
return annotationView;
}
return nil;
}
-(MKAnnotationView*)地图视图:(MKMapView*)地图视图注释:(id)注释
{
if([annotation isKindOfClass:[MKUserLocation类]])
{
//在此处创建自定义MKAnnotationView,以显示您的图像。
//用户当前位置
}
静态NSString*标识符=@“MyLocation”;
if([annotation isKindOfClass:[MyLocation class]])
{
MKPinAnnotationView*annotationView=(MKPinAnnotationView*)[\u地图视图排队可重用AnnotationViewWithIdentifier:identifier];
如果(注释视图==nil)
{
annotationView=[[MKPinAnnotationView alloc]initWithAnnotation:annotation重用标识符:标识符];
}
其他的
{
annotationView.annotation=注释;
}
annotationView.enabled=是;
annotationView.canShowCallout=是;
annotationView.image=[UIImage ImageName:@“yourImage.png”];
返回注释视图;
}
返回零;
}
请参考这个