mop-flutter-sdk/ios/Classes/FinAppletExt/ExtensionApi/Map/FATExt_invokeMapTask.m

170 lines
5.8 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

//
// FATExt_invokeMapTask.m
// FBRetainCycleDetector
//
// Created by 王兆耀 on 2021/9/2.
//
#import "FATExt_invokeMapTask.h"
#import "FATMapView.h"
#import "FATExtMapManager.h"
#import "FATExtUtil.h"
@implementation FATExt_invokeMapTask
- (void)setupApiWithSuccess:(void (^)(NSDictionary<NSString *, id> *successResult))success
failure:(void (^)(NSDictionary *failResult))failure
cancel:(void (^)(NSDictionary *cancelResult))cancel {
UIView<FATMapViewDelegate> *map = nil;
if (self.context && [self.context respondsToSelector:@selector(getChildViewById:)]) {
UIView *targetView = [self.context getChildViewById:self.param[@"mapId"]];
if (targetView && [targetView conformsToProtocol:@protocol(FATMapViewDelegate)]) {
map = (UIView<FATMapViewDelegate> *)targetView;
}
}
if (!map) {
if (failure) {
failure(@{@"errMsg" : @"map view not exist"});
}
return;
}
if ([self.eventName isEqualToString:@"getCenterLocation"]) {
NSMutableDictionary *dic = [[NSMutableDictionary alloc] initWithDictionary:[map fat_getCenter]];
if (success) {
success(dic);
}
} else if ([self.eventName isEqualToString:@"getRegion"]) {
NSDictionary *dic = [map fat_mapgetRegion];
if (success) {
success(dic);
}
} else if ([self.eventName isEqualToString:@"getScale"]) {
double scale = [map fat_getScale];
if (success) {
success(@{@"scale" : [NSNumber numberWithDouble:scale]});
}
} else if ([self.eventName isEqualToString:@"includePoints"]) {
[map fat_includePoints:self.data];
if (success) {
success(@{});
}
} else if ([self.eventName isEqualToString:@"moveToLocation"]) {
NSString *status = [map fat_moveToLocation:self.data];
if ([status isEqualToString:@"fail"]) {
if (failure) {
failure(@{@"errMsg" : @"not show user location"});
}
} else {
if (success) {
success(@{});
}
}
} else if ([self.eventName isEqualToString:@"fromScreenLocation"]) {
NSDictionary *dic = [map fat_fromScreenLocation];
if (success) {
success(dic);
}
} else if ([self.eventName isEqualToString:@"toScreenLocation"]) {
// 暂时有bug微信端有问题。
CGPoint point = [map fat_toScreenLocation:self.data];
if (success) {
success(@{@"x" : @(point.x),
@"y" : @(point.y)});
};
} else if ([self.eventName isEqualToString:@"openMapApp"]) {
[map fat_openMapApp:self.data];
if (success) {
success(@{});
};
} else if ([self.eventName isEqualToString:@"addMarkers"]) {
[map fat_addMarkers:self.data];
if (success) {
success(@{});
};
} else if ([self.eventName isEqualToString:@"removeMarkers"]) {
[map fat_removeMarkers:self.data];
if (success) {
success(@{});
};
} else if ([self.eventName isEqualToString:@"translateMarker"]) {
BOOL isExit = [map fat_translateMarker:self.data];
if (isExit) {
if (success) {
success(@{});
};
} else {
if (failure) {
failure(@{@"errMsg" : @"error markerid"});
}
}
} else if ([self.eventName isEqualToString:@"moveAlong"]) {
BOOL isExit = [map fat_moveAlong:self.data];
if (isExit) {
if (success) {
success(@{});
};
} else {
NSArray *pathArray = [[NSArray alloc] initWithArray:self.data[@"path"]];
if (pathArray.count == 0 || ![pathArray isKindOfClass:[NSArray class]]) {
if (failure) {
failure(@{@"errMsg" : @"parameter error: parameter.duration should be Number instead of Undefined;"});
}
} else {
if (failure) {
failure(@{@"errMsg" : @"error markerid"});
}
}
}
} else if ([self.eventName isEqualToString:@"setCenterOffset"]) {
if ([map respondsToSelector:@selector(mapSetCenterOffset:)]) {
[map mapSetCenterOffset:self.data];
if (success) {
success(@{});
};
} else {
if (failure) {
failure(@{@"errMsg" : @"not support"});
};
}
} else if ([self.eventName isEqualToString:@"getRotate"]) {
if ([map respondsToSelector:@selector(fat_getRotate)]) {
NSDictionary *dic = [map fat_getRotate];
if (success) {
success(dic);
}
} else {
if (failure) {
failure(@{@"errMsg" : @"not support"});
};
}
} else if ([self.eventName isEqualToString:@"getSkew"]) {
if ([map respondsToSelector:@selector(fat_getskew)]) {
NSDictionary *dic = [map fat_getskew];
if (success) {
success(dic);
}
} else {
if (failure) {
failure(@{@"errMsg" : @"not support"});
};
}
} else if ([self.eventName isEqualToString:@"initMarkerCluster"]) {
if (failure) {
failure(@{@"errMsg" : @"not support"});
};
} else if ([self.eventName isEqualToString:@"setLocMarkerIcon"]) {
if ([map respondsToSelector:@selector(fat_setLocMarkerIcon:)]) {
[map fat_setLocMarkerIcon:self.data];
if (success) {
success(@{});
}
} else {
if (failure) {
failure(@{@"errMsg" : @"not support"});
};
}
}
}
@end