我正在使用Google Map iOS SDK。在这里,我在单独的位置坐标中创建了多个标记。
现在,我需要为所有标记添加诸如TAG之类的标识符,以对特定标记执行操作。
如果TAG或其他标识符选项在Google Map iOS sdk中不可用,请建议我如何对其进行存档。
提前致谢。
最佳答案
我要做的是仅继承GMSMarker并向其中添加所需的任何数据,我想这是您拥有的最好,最简单的选择。
@interface ATGoogleMapsSelectiveMarker : GMSMarker
@property (nonatomic) int markerID;
@property (nonatomic) int order;
@property (strong, nonatomic) NSObject* referenceObject;
@property (nonatomic) BOOL selected;
@end
编辑:
我认为这很清楚,但是我将继续介绍如何获取数据...当您创建标记并将其添加到 map 时,您将创建ATGoogleMapsSelectiveMarker并将其添加到 map 中,然后将所需的所有内容填满,然后您将任何想要的类注册为实现GMSMapViewDelegate的委托(delegate),并实现此方法
- (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker {
// Here you are sure that your marker object is of type ATGoogleMapsSelectiveMarker but it won't harm to double check
if ([marker isKindOfClass:[ATGoogleMapsSelectiveMarker class]]) {
ATGoogleMapsSelectiveMarker* parsedMarker = (ATGoogleMapsSelectiveMarker*)marker;
NSLog(@"%d", parsedMarker.markerId);
}
return YES;
}