gpt4 book ai didi

ios - 将我的 Pin 更改为自定义图像在我的 MKMapView 中不起作用

转载 作者:行者123 更新时间:2023-11-28 19:54:37 25 4
gpt4 key购买 nike

我正在尝试更改 map View 中的图钉图像。注释是通过解析 KML 文件创建的,如下所示:

-(void)loadMap
{
NSURL *url = [NSURL fileURLWithPath:path];
kmlParser = [[KMLParser alloc] initWithURL:url];
[kmlParser parseKML];

NSArray *overlays = [kmlParser overlays];
[map addOverlays:overlays];

NSArray *annotations = [kmlParser points];
[map addAnnotations:annotations];
MKMapRect goTo = MKMapRectNull;

for (id <MKOverlay> overlay in overlays) {
if (MKMapRectIsNull(goTo)) {
goTo = [overlay boundingMapRect];
} else {
goTo = MKMapRectUnion(goTo, [overlay boundingMapRect]);
}
}

for (id <MKAnnotation> annotation in annotations) {
MKMapPoint annotationPoint = MKMapPointForCoordinate(annotation.coordinate);
MKMapRect pointRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0, 0);
if (MKMapRectIsNull(goTo)) {
goTo = pointRect;
} else {
goTo = MKMapRectUnion(goTo, pointRect);
}
}
map.visibleMapRect = goTo;
}

代码然后运行下面的 viewForAnnotation 方法,该方法应将我的图钉图像更改为我的自定义图钉图像。

-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation
{
MKAnnotationView *pinView = [kmlParser viewForAnnotation:annotation];
if(annotation != map.userLocation)
{
static NSString* AnnotationIdentifier = @"AnnotationIdentifier";
MKPinAnnotationView* pinView = [[MKPinAnnotationView alloc]
initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier];

pinView.canShowCallout = YES;
pinView.animatesDrop = YES;
pinView.image = [UIImage imageNamed:@"bigPin.png"];
}
return pinView;
}

viewForAnnotation 方法运行,它似乎改变了图像,但 map 仍然显示原始图钉图像。我做错了什么?

最佳答案

上面Anna提供的答案解决了问题

参见 stackoverflow.com/questions/9814988/ ……代码正在创建 MKPinAnnotationView 而不是普通的 MKAnnotationView。

关于ios - 将我的 Pin 更改为自定义图像在我的 MKMapView 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27155735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com