我正在我的应用程序中使用MapBox实现一个离线地图,该地图目前将mapkit与Apple Maps一起使用。
我有一个描述兴趣点的对象 - 名称,描述位置等,界面如下所示:
#import <Foundation/Foundation.h>
#import <Mapkit/MapKit.h>
#import <MapBox/MapBox.h>
@class CLLocation;
@interface MHGPlace : NSObject <MKAnnotation>
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
-(NSString *) title;
-(NSString *) subtitle;
-(NSString *) mapid;
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *description;
@end
上面的对象被添加到一个数组中,然后添加到mapkit中,如下所示:
[self.mapView addAnnotations:self.places];
但是,在处理MapBox mapview时,我不能像上面那样添加MKAnnotation对象,因为它需要一个RMAnnotation对象。但当我改变我的界面阅读 -
<RMAnnotation>
代替<MKAnnotation>
,它似乎不存在。
我无法在文档中找到有关如何添加这样的注释的文档。尝试这样做会很好,所以我可以处理回调并知道哪些注释已被挖掘等等!
答案 0 :(得分:1)
我是MapBox SDK的维护者。 RMAnnotation
不是协议,而是一个类。您肯定可以将RMAnnotation
子类添加为mapid
&amp;根据需要的其他属性。但是你可能不需要这个,因为你也可以使用-[RMAnnotation userInfo]
并为它分配一个包含你需要传递的内容的NSDictionary
。
您可以在官方文档中找到有关此内容的更多信息:http://www.mapbox.com/mapbox-ios-sdk/api/#RMAnnotation-class
答案 1 :(得分:0)
查看官方论坛,似乎无法使用当前版本进行子类化,因此我无法创建自己的RMAnnotation对象