You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
887 lines
26 KiB
Objective-C
887 lines
26 KiB
Objective-C
//
|
|
// BMFMapViewHandles.m
|
|
// flutter_bmfmap
|
|
//
|
|
// Created by zbj on 2020/2/11.
|
|
//
|
|
|
|
#import "BMFMapViewHandles.h"
|
|
#import "BMFMapView.h"
|
|
#import "BMFMapMethodConst.h"
|
|
#import "BMFAnnotationMethodConst.h"
|
|
#import "BMFFileManager.h"
|
|
#import "UIColor+BMFString.h"
|
|
#import "BMFMapModels.h"
|
|
#import "BMFEdgeInsets.h"
|
|
#import "BMFIndoorMapInfoModel.h"
|
|
#import "BMFMapStatusModel.h"
|
|
|
|
@interface BMFMapViewHandles ()
|
|
{
|
|
NSDictionary *_handles;
|
|
}
|
|
@end
|
|
|
|
@implementation BMFMapViewHandles
|
|
|
|
static BMFMapViewHandles *_instance = nil;
|
|
+ (instancetype)defalutCenter{
|
|
if (!_instance) {
|
|
static dispatch_once_t onceToken;
|
|
dispatch_once(&onceToken, ^{
|
|
_instance = [[BMFMapViewHandles alloc] init];
|
|
});
|
|
}
|
|
return _instance;
|
|
}
|
|
- (NSDictionary<NSString *, NSString *> *)mapViewHandles{
|
|
if (!_handles) {
|
|
_handles = @{
|
|
kBMFMapUpdateMethod: NSStringFromClass([BMFUpdateMap class]),
|
|
kBMFMapShowBaseIndoorMapMethod: NSStringFromClass([BMFShowBaseIndoorMap class]),
|
|
kBMFMapShowBaseIndoorMapPoiMethod: NSStringFromClass([BMFShowBaseIndoorMapPoi class]),
|
|
kBMFMapSwitchBaseIndoorMapFloorMethod: NSStringFromClass([BMFSwitchBaseIndoorMapFloor class]),
|
|
kBMFMapGetFocusedBaseIndoorMapInfoMethod: NSStringFromClass([BMFGetFocusedBaseIndoorMapInfo class]),
|
|
kBMFMapSetCustomMapStyleEnableMethod: NSStringFromClass([BMFSetCustomMapStyleEnable class]),
|
|
kBMFMapSetCustomMapStylePathMethod: NSStringFromClass([BMFSetCustomMapStylePath class]),
|
|
kBMFMapSetCustomMapStyleWithOptionMethod: NSStringFromClass([BMFSetCustomMapStyleWithOption class]),
|
|
kBMFMapZoomInMethod: NSStringFromClass([BMFZoomIn class]),
|
|
kBMFMapZoomOutMethod: NSStringFromClass([BMFZoomOut class]),
|
|
kBMFMapSetCustomTrafficColorMethod: NSStringFromClass([BMFSetCustomTrafficColor class]),
|
|
kBMFMapSetCenterCoordinateMethod: NSStringFromClass([BMFSetCenterCoordinate class]),
|
|
kBMFMapTakeSnapshotMethod: NSStringFromClass([BMFTakeSnapshot class]),
|
|
kBMFMapTakeSnapshotWithRectMethod: NSStringFromClass([BMFTakeSnapshotWithRect class]),
|
|
kBMFMapSetCompassImageMethod: NSStringFromClass([BMFSetCompassImage class]),
|
|
kBMFMapSetVisibleMapBoundsMethod: NSStringFromClass([BMFSetVisibleMapBounds class]),
|
|
kBMFMapSetVisibleMapBoundsWithPaddingMethod: NSStringFromClass([BMFSetVisibleMapBoundsWithPadding class]),
|
|
kBMFMapSetMapStatusMethod: NSStringFromClass([BMFSetMapStatus class]),
|
|
kBMFMapGetMapStatusMethod: NSStringFromClass([BMFGetMapStatus class]),
|
|
kBMFMapGetMapTypeMethod: NSStringFromClass([BMFGetMapType class]),
|
|
kBMFMapGetZoomLevelMethod: NSStringFromClass([BMFGetZoomLevel class]),
|
|
kBMFMapGetMinZoomLevelMethod: NSStringFromClass([BMFGetMinZoomLevel class]),
|
|
kBMFMapGetMaxZoomLevelMethod: NSStringFromClass([BMFGetMaxZoomLevel class]),
|
|
kBMFMapGetRotationMethod: NSStringFromClass([BMFGetRotation class]),
|
|
kBMFMapGetOverlookingMethod: NSStringFromClass([BMFGetOverlooking class]),
|
|
kBMFMapGetMinOverlookingMethod: NSStringFromClass([BMFGetMinOverlooking class]),
|
|
kBMFMapGetBuildingsEnabledMethod: NSStringFromClass([BMFGetBuildingsEnabled class]),
|
|
kBMFMapGetShowMapPoiMethod: NSStringFromClass([BMFGetShowMapPoi class]),
|
|
kBMFMapGetTrafficEnabledMethod: NSStringFromClass([BMFGetTrafficEnabled class]),
|
|
kBMFMapGetBaiduHeatMapEnabledMethod: NSStringFromClass([BMFGetBaiduHeatMapEnabled class]),
|
|
kBMFMapGetGesturesEnabledMethod: NSStringFromClass([BMFGetGesturesEnabled class]),
|
|
kBMFMapGetZoomEnabledMethod: NSStringFromClass([BMFGetZoomEnabled class]),
|
|
kBMFMapGetZoomEnabledWithTapMethod: NSStringFromClass([BMFGetZoomEnabledWithTap class]),
|
|
kBMFMapGetScrollEnabledMethod: NSStringFromClass([BMFGetScrollEnabled class]),
|
|
kBMFMapGetOverlookEnabledMethod: NSStringFromClass([BMFGetOverlookEnabled class]),
|
|
kBMFMapGetRotateEnabledMethod: NSStringFromClass([BMFGetRotateEnabled class]),
|
|
kBMFMapGetForceTouchEnabledMethod: NSStringFromClass([BMFGetForceTouchEnabled class]),
|
|
kBMFMapGetShowMapScaleBarMethod: NSStringFromClass([BMFGetShowMapScaleBar class]),
|
|
kBMFMapGetMapScaleBarPositionMethod: NSStringFromClass([BMFGetMapScaleBarPosition class]),
|
|
kBMFMapGetLogoPositionMethod: NSStringFromClass([BMFGetLogoPosition class]),
|
|
kBMFMapGetVisibleMapBoundsMethod: NSStringFromClass([BMFGetVisibleMapBounds class]),
|
|
kBMFMapGetBaseIndoorMapEnabledMethod: NSStringFromClass([BMFGetBaseIndoorMapEnabled class]),
|
|
kBMFMapGetShowIndoorMapPoiMethod: NSStringFromClass([BMFGetShowIndoorMapPoi class])
|
|
|
|
};
|
|
}
|
|
return _handles;
|
|
}
|
|
|
|
@end
|
|
|
|
#pragma mark - map
|
|
|
|
@implementation BMFUpdateMap
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
if (!call.arguments) {
|
|
result(@NO);
|
|
return;
|
|
}
|
|
BOOL success = [_mapView updateMapViewWith:call.arguments];
|
|
result(@(success));
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFShowBaseIndoorMap
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
if (!call.arguments) {
|
|
result(@NO);
|
|
return;
|
|
}
|
|
_mapView.baseIndoorMapEnabled = [[call.arguments safeValueForKey:@"show"] boolValue];
|
|
[_mapView setMapStatus:[_mapView getMapStatus]];
|
|
result(@YES);
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFShowBaseIndoorMapPoi
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
if (!call.arguments || !_mapView.baseIndoorMapEnabled) {
|
|
result(@NO);
|
|
return;
|
|
}
|
|
_mapView.showIndoorMapPoi = [[call.arguments safeValueForKey:@"showIndoorPoi"] boolValue];
|
|
result(@YES);
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFSwitchBaseIndoorMapFloor
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
BMKSwitchIndoorFloorError error;
|
|
if (!call.arguments || !call.arguments[@"floorId"] || !call.arguments[@"indoorId"] || !_mapView.baseIndoorMapEnabled) {
|
|
error = BMKSwitchIndoorFloorFailed;
|
|
result(@{@"result":@(error)});
|
|
return;
|
|
}
|
|
|
|
error = [_mapView switchBaseIndoorMapFloor:[call.arguments safeValueForKey:@"floorId"] withID:[call.arguments safeValueForKey:@"indoorId"]];
|
|
result(@{@"result":@(error)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetFocusedBaseIndoorMapInfo
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
if (!_mapView.baseIndoorMapEnabled) {
|
|
result(@{@"result": [NSNull null]});
|
|
return;
|
|
}
|
|
BMKBaseIndoorMapInfo *info = [_mapView getFocusedBaseIndoorMapInfo];
|
|
BMFIndoorMapInfoModel *model = [BMFIndoorMapInfoModel new];
|
|
model.strID = info.strID;
|
|
model.strFloor = info.strFloor;
|
|
model.listStrFloors = info.arrStrFloors;
|
|
result([model bmf_toDictionary]);
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFSetCustomMapStyleEnable
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
if (!call.arguments) {
|
|
result(@NO);
|
|
return;
|
|
}
|
|
[_mapView setCustomMapStyleEnable:[[call.arguments safeValueForKey:@"enable"] boolValue]];
|
|
result(@YES);
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFSetCustomMapStylePath
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
if (!call.arguments) {
|
|
result(@NO);
|
|
return;
|
|
}
|
|
NSString *path = [[BMFFileManager defaultCenter] pathForFlutterFileName:[call.arguments safeValueForKey:@"path"]];
|
|
[_mapView setCustomMapStylePath:path mode:[[call.arguments safeValueForKey:@"mode"] intValue]];
|
|
result(@YES);
|
|
}
|
|
@end
|
|
|
|
@implementation BMFSetCustomMapStyleWithOption
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
if (!call.arguments) {
|
|
result(@NO);
|
|
return;
|
|
}
|
|
BMKCustomMapStyleOption *options = [BMKCustomMapStyleOption new];
|
|
options.customMapStyleID = [[call.arguments safeObjectForKey:@"customMapStyleOption"] safeValueForKey:@"customMapStyleID"];
|
|
NSString *localPath = [[call.arguments safeObjectForKey:@"customMapStyleOption"] safeValueForKey:@"customMapStyleFilePath"];
|
|
if (localPath && localPath.length > 0) {
|
|
options.customMapStyleFilePath = [[BMFFileManager defaultCenter] pathForFlutterFileName:localPath];
|
|
}
|
|
[_mapView setCustomMapStyleWithOption:options preLoad:^(NSString *path) {
|
|
if (path) {
|
|
result(@{@"preloadPath": path});
|
|
}
|
|
} success:^(NSString *path) {
|
|
if (path) {
|
|
result(@{@"successPath": path});
|
|
}
|
|
} failure:^(NSError *error, NSString *path) {
|
|
if (error) {
|
|
result(@{@"errorCode": @(error.code), @"errorPath": path ? path : [NSNull null]});
|
|
}
|
|
// NSLog(@"failure-error=%@,path=%@", error, path);
|
|
}];
|
|
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFZoomIn
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
BOOL flag = [_mapView zoomIn];
|
|
result(@(flag));
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFZoomOut
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
BOOL flag = [_mapView zoomOut];
|
|
result(@(flag));
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFSetCustomTrafficColor
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
if (!call.arguments) {
|
|
result(@NO);
|
|
return;
|
|
}
|
|
UIColor *smooth = [UIColor fromColorString:[call.arguments safeValueForKey:@"smooth"]];
|
|
UIColor *slow = [UIColor fromColorString:[call.arguments safeValueForKey:@"slow"]];
|
|
UIColor *congestion = [UIColor fromColorString:[call.arguments safeValueForKey:@"congestion"]];
|
|
UIColor *severeCongestion = [UIColor fromColorString:[call.arguments safeValueForKey:@"severeCongestion"]];
|
|
if (smooth && slow && congestion && severeCongestion) {
|
|
BOOL flag = [_mapView setCustomTrafficColorForSmooth:smooth slow:slow congestion:congestion severeCongestion:severeCongestion];
|
|
result(@(flag));
|
|
return;
|
|
} else {
|
|
result(@NO);
|
|
}
|
|
}
|
|
@end
|
|
|
|
@implementation BMFSetCenterCoordinate
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
if (!call.arguments) {
|
|
result(@NO);
|
|
return;
|
|
}
|
|
BMFCoordinate *coordinate = [BMFCoordinate bmf_modelWith:[call.arguments safeObjectForKey:@"coordinate"]];
|
|
if (coordinate) {
|
|
[_mapView setCenterCoordinate:[coordinate toCLLocationCoordinate2D] animated:[[call.arguments safeValueForKey:@"animated"] boolValue]];
|
|
result(@YES);
|
|
return;
|
|
} else {
|
|
result(@NO);
|
|
}
|
|
}
|
|
@end
|
|
|
|
@implementation BMFTakeSnapshot
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
UIImage *image = [_mapView takeSnapshot];
|
|
if (!image) {
|
|
result(@[]);
|
|
return;
|
|
}
|
|
NSData *data = UIImageJPEGRepresentation(image, 100);
|
|
FlutterStandardTypedData *fData = [FlutterStandardTypedData typedDataWithBytes:data];
|
|
result(fData);
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFTakeSnapshotWithRect
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
if (!call.arguments || !call.arguments[@"rect"]) {
|
|
result(@[]);
|
|
return;
|
|
}
|
|
|
|
CGRect rect = [[BMFMapRect bmf_modelWith:[call.arguments safeObjectForKey:@"rect"]] toCGRect];
|
|
UIImage *image = [_mapView takeSnapshot:rect];
|
|
if (!image) {
|
|
result(@[]);
|
|
return;
|
|
}
|
|
NSData *data = UIImageJPEGRepresentation(image, 100);
|
|
FlutterStandardTypedData *fData = [FlutterStandardTypedData typedDataWithBytes:data];
|
|
result(fData);
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFSetCompassImage
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
if (!call.arguments || !call.arguments[@"imagePath"]) {
|
|
result(@NO);
|
|
return;
|
|
}
|
|
UIImage *image = [UIImage imageWithContentsOfFile:[[BMFFileManager defaultCenter] pathForFlutterImageName:[call.arguments safeValueForKey:@"imagePath"]]];
|
|
[_mapView setCompassImage:image];
|
|
result(@YES);
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFSetVisibleMapBounds
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
if (!call.arguments || !call.arguments[@"visibleMapBounds"] || !call.arguments[@"animated"]) {
|
|
result(@NO);
|
|
return;
|
|
}
|
|
BMFCoordinateBounds *bounds = [BMFCoordinateBounds bmf_modelWith:[call.arguments safeObjectForKey:@"visibleMapBounds"]];
|
|
[_mapView setVisibleMapRect:[bounds toBMKMapRect] animated:[[call.arguments safeValueForKey:@"animated"] boolValue]];
|
|
result(@YES);
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFSetVisibleMapBoundsWithPadding
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
if (!call.arguments || !call.arguments[@"visibleMapBounds"] || !call.arguments[@"insets"] || !call.arguments[@"animated"]) {
|
|
result(@NO);
|
|
return;
|
|
}
|
|
BMFCoordinateBounds *bounds = [BMFCoordinateBounds bmf_modelWith:[call.arguments safeObjectForKey:@"visibleMapBounds"]];
|
|
BMFEdgeInsets *insets = [BMFEdgeInsets bmf_modelWith:[call.arguments safeObjectForKey:@"insets"]];
|
|
[_mapView setVisibleMapRect:[bounds toBMKMapRect] edgePadding:[insets toUIEdgeInsets] animated:[[call.arguments safeValueForKey:@"animated"] boolValue]];
|
|
result(@YES);
|
|
}
|
|
|
|
@end
|
|
|
|
|
|
@implementation BMFSetMapStatus
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
if (!call.arguments || !call.arguments[@"mapStatus"] || !call.arguments[@"animateDurationMs"] ) {
|
|
result(@NO);
|
|
return;
|
|
}
|
|
BMFMapStatusModel *status = [BMFMapStatusModel bmf_modelWith:[call.arguments safeObjectForKey:@"mapStatus"]];
|
|
int animate = [[call.arguments safeValueForKey:@"animateDurationMs"] intValue];
|
|
[_mapView setMapStatus:[status toMapStatus] withAnimation: animate!=0 ? YES : NO];
|
|
result(@YES);
|
|
}
|
|
|
|
|
|
|
|
@end
|
|
|
|
#pragma mark - Get
|
|
|
|
@implementation BMFGetMapStatus
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
BMFMapStatusModel *status = [BMFMapStatusModel fromMapStatus:[_mapView getMapStatus]];
|
|
status ? result(@{@"mapStatus":[status bmf_toDictionary]}) : result(@{@"mapStatus":[NSNull null]});
|
|
}
|
|
|
|
@end
|
|
|
|
|
|
@implementation BMFGetMapType
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"mapType" : @(_mapView.mapType)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetZoomLevel
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
|
|
result(@{@"zoomLevel": @((int)_mapView.zoomLevel)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetMinZoomLevel
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"minZoomLevel": @((int)_mapView.minZoomLevel)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetMaxZoomLevel
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"maxZoomLevel" : @((int)_mapView.maxZoomLevel)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetRotation
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"rotation" : @((float)_mapView.rotation)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetOverlooking
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"overlooking": @((float)_mapView.overlooking)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetMinOverlooking
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"minOverlooking" : @(_mapView.minOverlooking)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetBuildingsEnabled
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"buildingsEnabled": @(_mapView.buildingsEnabled)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetShowMapPoi
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"showMapPoi" : @(_mapView.showMapPoi)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetTrafficEnabled
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"trafficEnabled": @(_mapView.trafficEnabled)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetBaiduHeatMapEnabled
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"baiduHeatMapEnabled": @(_mapView.baiduHeatMapEnabled)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetGesturesEnabled
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"gesturesEnabled" : @(_mapView.gesturesEnabled)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetZoomEnabled
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"zoomEnabled": @(_mapView.zoomEnabled)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetZoomEnabledWithTap
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"zoomEnabledWithTap" : @(_mapView.zoomEnabledWithTap)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetScrollEnabled
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"scrollEnabled" : @(_mapView.scrollEnabled)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetOverlookEnabled
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"overlookEnabled": @(_mapView.overlookEnabled)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetRotateEnabled
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"rotateEnabled": @(_mapView.rotateEnabled)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetForceTouchEnabled
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"forceTouchEnabled": @(_mapView.forceTouchEnabled)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetShowMapScaleBar
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"showMapScaleBar" : @(_mapView.showMapScaleBar)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetMapScaleBarPosition
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
BMFMapPoint *point = [BMFMapPoint fromCGPoint:_mapView.mapScaleBarPosition];
|
|
result(@{@"mapScaleBarPosition": [point bmf_toDictionary]});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetLogoPosition
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"logoPosition" : @(_mapView.logoPosition)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetVisibleMapBounds
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
BMFMapRect *mapRect = [BMFMapRect fromBMKMapRect:_mapView.visibleMapRect];
|
|
BMFCoordinateBounds *visibleMapBounds = [mapRect toBMFCoordinateBounds];
|
|
result(@{@"visibleMapBounds": [visibleMapBounds bmf_toDictionary]});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetBaseIndoorMapEnabled
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"baseIndoorMapEnabled" : @(_mapView.baseIndoorMapEnabled)});
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation BMFGetShowIndoorMapPoi
|
|
|
|
@synthesize _mapView;
|
|
|
|
- (nonnull NSObject<BMFMapViewHandler> *)initWith:(nonnull BMFMapView *)mapView {
|
|
_mapView = mapView;
|
|
return self;
|
|
}
|
|
|
|
- (void)handleMethodCall:(nonnull FlutterMethodCall *)call result:(nonnull FlutterResult)result {
|
|
result(@{@"showIndoorMapPoi" : @(_mapView.showIndoorMapPoi)});
|
|
}
|
|
|
|
|
|
@end
|