【问题标题】:How to make Map Pin (Custom) image appear at centre point如何使地图图钉(自定义)图像出现在中心点
【发布时间】:2013-11-14 19:43:27
【问题描述】:

请告诉我如何使图像出现在中心点。 让我详细说明。 我在 MapPin 上有一个自定义图像,但图像似乎是这样的

如果您仔细观察,图钉落在正确的经纬度上,但圆形部分的图像中心落在经度和经度上。因此,纬度和经度似乎不同位置。(见销座)。 但是我们想要的是针脚落在位置(纬度和经度)上。 像这样的东西..(参考第二张图片) 请不要告诉我更改图像的高度和宽度,因为有 300 张图像。 除非并且直到这是唯一的选择,或者我可以通过编程方式更改它。

请帮助解决这个可悲的问题。

谢谢小伙伴们。

【问题讨论】:

  • 在 viewForAnnotation 中,您是否正确设置了centerOffset?见stackoverflow.com/questions/13492231/…
  • @AnnaKarenina : The Linked 在很大程度上帮助了我。但不幸的是,我无法在适当的纬度/经度上找到图钉。我是否需要为每个引脚设置不同的 centerOffset,因为我有 4 个引脚,并且在应用 centerOffset 时,它似乎只适用于单个引脚,而不适用于所有引脚。
  • @AnnaKarenina:终于!!!我为每个引脚使用了不同的偏移量。虽然我花了很长时间并且很难准确地放置每个引脚,但最终我做到了。由于MichaelO发布了答案,我会接受他的。但我不能否认安娜卡列尼娜的评论在很大程度上帮助了这一事实,所以我在她发布的链接上支持她的回答。十分感谢大家。 !!!

标签: ios map annotations


【解决方案1】:

我在一个测试应用中做过类似的事情。

我把代码放在这里,你可以按照自己的方式自定义,希望对你有帮助。

在超级视图中确实加载了,我有

MapAnnotation *ann = [[MapAnnotation alloc] init];

MKCoordinateRegion region;
region.center.latitude = 31.504679;
region.center.longitude = 74.247429;
region.span.latitudeDelta = 0.01;
region.span.longitudeDelta = 0.01;

[mapView setRegion:region animated:YES];




ann.title = @"Digital Net";
ann.subtitle = @"Office";
ann.coordinate = region.center;

[mapView addAnnotation:ann];

【讨论】:

  • iOS 学习者:我尝试使用所有引脚通用的区域并在添加引脚后将其设置为映射..但不幸的是......没有用。
  • 找到解决方法还是问题依然存在
  • iOS 学习者:我确实找到了解决方案,请检查上面的 cmets,所以我接受了你的回答。
【解决方案2】:

您可以使用 centerOffset 根据您的图像尺寸移动位置。

例如绝对偏移量:

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

    static NSString* const annIdentifier = @"annotationidentifier";
    PinAnnotationView* myPinView = [[[PinAnnotationView alloc] initWithAnnotation:annotation     reuseIdentifier:annIdentifier] autorelease];

    myPinView.centerOffset = CGPointMake(0, -10.0f);

    return myPinView;
}

将这些绝对值替换为根据您的个人图像尺寸计算得出的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多