gpt4 book ai didi

iOS MapKit 注释,没有显示正确的位置

转载 作者:可可西里 更新时间:2023-11-01 06:21:14 26 4
gpt4 key购买 nike

我为我的 mapkit 注释使用自定义图像。但似乎我在使用自定义图像时遇到的主要问题是,当缩小时,注释不在 map 上的正确位置,并且只有在我一直向下放大时,它才会显示注释点在正确的位置。似乎当我使用常规图钉 MKPinAnnotationView 时,它工作正常,因为图钉在正确的位置放大或缩小,在此先感谢任何可以提供帮助的人。

我用过的代码如下:

- (MKAnnotationView *)mapView:(MKMapView *)aMapView viewForAnnotation:(id <MKAnnotation>)annotation
{

NSLog(@"welcome into the map view annotation");

if ([annotation isKindOfClass:[MKUserLocation class]])

return nil;

MKAnnotationView *pprMapNote = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"pprMapNote"];


pprMapNote.image = [UIImage imageNamed:[NSString stringWithFormat:@"GPS_note.png"]];

pprMapNote.canShowCallout = YES;
pprMapNote.centerOffset = CGPointMake(-21,-60);
pprMapNote.calloutOffset = CGPointMake(0, 0);
//[pprMapNote addSubview:pprMapNoteImg];

UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[rightButton addTarget:self
action:@selector(showDetail)
forControlEvents:UIControlEventTouchUpInside];
pprMapNote.rightCalloutAccessoryView = rightButton;

//remember to write in conditional for the different icons that should be loaded based on location

UIImageView *pprNoteLocIcon = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"loc_icon_casino.png"]];
pprMapNote.leftCalloutAccessoryView = pprNoteLocIcon;
[pprNoteLocIcon release];

return pprMapNote;

}

最佳答案

您正在设置注释 View 的 centerOffset

请注意,此偏移量随缩放级别缩放。缩小得越远,图像离坐标越远。

在默认的 MKPinAnnotationView 中,centerOffset 保留为默认值 0,0,pin 图像的设计使得 pin 的底点位于协调。因此,当您进一步缩小时,图钉图像似乎会相对于其下方的 map 变大,但图钉的底部仍指向坐标。

您需要根据您的图像调整centerOffset,或者修改您的图像,这样您就不需要设置centerOffset。或者只是尝试注释掉 centerOffset 的设置——也许您不需要它。


其他一些不相关的项目:

  • pprMapNote alloc+init(添加自动释放)内存泄漏
  • 您应该使用 dequeueReusableAnnotationViewWithIdentifier 以允许注释 View 重用。
  • 与其使用 addTarget 调用您自己的方法来按下标注按钮,不如使用 map View 自己的委托(delegate)方法 calloutAccessoryControlTapped

参见 this answer以上三点为例。

关于iOS MapKit 注释,没有显示正确的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7461474/

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