如何在mkmapview type = satellite中更改用户位置图钉图像?

时间:2015-10-08 09:30:36

标签: ios objective-c iphone mkmapview

MKMapView我有两种类型的地图MKMapTypeStandardMKMapTypeSatellite
我想将用户位置引脚替换为另一个(location.jpg)图像。
引脚图像在MKMapTypeStandard(location.jpg)中更改,但在MKMapTypeSatellite(默认图像)引脚图像显示为默认地图图钉图像。
如何在项目中解决此问题?< / p>

这是我的代码。

MKPinAnnotationView *pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:nil];

     MKPinAnnotationView *customPinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:nil];
    //customPinView.image = [UIImage imageNamed:@"mappin4"];
    if (!pinView)
    {
        if (annotation == mapView.userLocation)
        {
            customPinView.image = [UIImage imageNamed:@"mappin4"];

        }
        else
        {

        }
        customPinView.animatesDrop = NO;
        customPinView.canShowCallout = NO;
        customPinView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
       return customPinView;

    } else
    {
       pinView.annotation = annotation;
    }

1 个答案:

答案 0 :(得分:0)

试试这个;

 - (void) changeMapType: (id)sender
    {
        if (mapView.mapType == MKMapTypeStandard)
            mapView.mapType = MKMapTypeSatellite;
        else
            mapView.mapType = MKMapTypeStandard;
    }

因此,默认情况下,如果您使用谷歌地图,则采用 MKMapTypeStandard 的形式。 如果你想要你可以改变 mapView.mapType = MKMapTypeSatellite ;

您还可以查看以下网址;

Why does a custom MKMapView annotation image disappear on touch?

确保您在viewForAnnotation方法的任何位置使用 MKAnnotationView 而不是 MKPinAnnotationView