amap_map/ios/Classes/Model/AMapMarker.m

69 lines
1.7 KiB
Mathematica
Raw Normal View History

2023-12-22 21:23:24 +08:00
//
// AMapMarker.m
// amap_map
//
// Created by lly on 2020/11/3.
//
#import "AMapMarker.h"
#import "AMapInfoWindow.h"
#import "MAPointAnnotation+Flutter.h"
@interface AMapMarker ()
@property (nonatomic, strong, readwrite) MAPointAnnotation *annotation;
@end
@implementation AMapMarker
- (instancetype)init {
self = [super init];
if (self) {
_alpha = 1.0;
_clickable = YES;
_draggable = NO;
_visible = YES;
}
return self;
}
- (MAPointAnnotation *)annotation {
if (_annotation == nil) {
NSAssert(self.id_ != nil, @"markerid不能为空");
_annotation = [[MAPointAnnotation alloc] initWithMarkerId:self.id_];
[self _updateAnnotation];
}
return _annotation;
}
/// marker
/// @param changedMarker marker
- (void)updateMarker:(AMapMarker *)changedMarker {
NSAssert((changedMarker != nil && [self.id_ isEqualToString:changedMarker.id_]), @"更新marker数据异常");
self.alpha = changedMarker.alpha;
self.anchor = changedMarker.anchor;
self.clickable = changedMarker.clickable;
self.draggable = changedMarker.draggable;
self.flat = changedMarker.flat;
self.infoWindowEnable = changedMarker.infoWindowEnable;
self.infoWindow = changedMarker.infoWindow;
self.position = changedMarker.position;
self.rotation = changedMarker.rotation;
self.visible = changedMarker.visible;
self.zIndex = changedMarker.zIndex;
if (_annotation) {//Annotation
[self _updateAnnotation];
}
}
- (void)_updateAnnotation {
_annotation.title = self.infoWindow.title;
_annotation.subtitle = self.infoWindow.snippet;
_annotation.coordinate = self.position;
}
@end