如何使地图图钉(自定义)图像出现在中心点

时间:2013-11-04 07:42:58

标签: ios map annotations

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

enter image description here

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

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

谢谢你好朋友。

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以使用centerOffset根据图像大小移动位置。

e.g。绝对偏移:

-(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;
}

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

答案 1 :(得分:0)

我在测试应用程序中做过类似的事情。

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

在超级视图中加载,我有

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];