我有一个MKMapView类,我想在地图上显示图像所代表的用户位置。 所以,我读了这个教程:http://www.switchonthecode.com/tutorials/getting-your-location-in-an-iphone-application
这个人在视图上使用locationmanager,我需要在MKMapView上使用它。
对我来说,最好的方法是创建一个只是为了控制用户位置的类? 我怎么能这样做?
谢谢!
答案 0 :(得分:0)
首先,您希望该地点显示在地图上:
yourMapView.showsUserLocation = YES;
然后,您需要处理委托方法以显示用户位置的注释视图:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id < MKAnnotation >)annotation {
if ([annotation isKindOfClass:[MKUserLocation class]]) {
// Create a custom MKAnnotationView here that will display your image.
}
}
确保正确设置delegate
上的MKMapView
。
答案 1 :(得分:0)
为此,您需要实施MKAnnotation
&amp; MKMapView
代表。
实施此方法以将默认引脚更改为自定义图像。
- (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;
}
请参阅此tutorial。