如何将自定义图像标记添加到Mapbox iOS?

时间:2014-04-25 19:38:16

标签: ios objective-c mapbox

我正在关注本教程:https://www.mapbox.com/mapbox-ios-sdk/examples/marker-custom-image/我有一个网络API,我从中得到纬度/经度/名称/ imageURL。

您可以在此处查看我的代码:http://pastebin.com/eGtYSXR8

在第107行,我想循环通过响应并创建标记,同时为标记分配自定义图像,但我不知道如何做到这一点。我是Obj-C的新手,所以我不知道这行被调用的地方或函数名称是什么:

- (RMMapLayer *)mapView:(RMMapView *)mapView layerForAnnotation:(RMAnnotation *)annotation

有人能指出我正确的方向吗?我理解如何在MapBox上创建标记,但图像似乎是在不同的函数中创建的,无法传递变量。

2 个答案:

答案 0 :(得分:1)

您也应该阅读Cocoa中的委托模式,并且可以使用-[RMAnnotation userInfo]来传递可以在委托回调中使用的注释的任意信息。

答案 1 :(得分:0)

首先,您应该创建RMAnnotation并将此注释添加到地图中。

_userLocation = [RMAnnotation annotationWithMapView:_mapView
                                            coordinate:CLLocationCoordinate2DMake(0.011774,0.002308)
                                             andTitle:nil];
[_mapView addAnnotation:_userLocation];

第二

- (RMMapLayer *)mapView:(RMMapView *)mapView layerForAnnotation:(RMAnnotation *)annotation
{
    marker = [[RMMarker alloc] initWithUIImage:[UIImage imageNamed:@"userPin"]];
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 80, 80)];
    imageView.contentMode = UIViewContentModeScaleAspectFit;
    marker.leftCalloutAccessoryView = imageView;
    return marker;
}