Files
OrderScheduling/Pods/DDMAMapKit_Private/DDMAMapKit_Private/Classes/DDMANaviManager/DDMANaviManager.m
T
2023-08-24 16:46:39 +08:00

73 lines
2.6 KiB
Objective-C

//
// DDMANaviManager.m
// DDMAMapKit_Private
// Created by DDIsFriend on 2023/3/16.
#import "DDMANaviManager.h"
#import <AMapNaviKit/AMapNaviKit.h>
@interface DDMANaviManager ()
@property (nonatomic, strong)AMapNaviCompositeManager *compositeManager;
@end
@implementation DDMANaviManager
// MARK: <Class Initialize>
+ (void)startWithAppKey:(nullable NSString *)appKey{
[[AMapServices sharedServices] setEnableHTTPS:YES];
[AMapServices sharedServices].apiKey = appKey;
}
+ (void)agreePrivacy{
[MAMapView updatePrivacyShow:AMapPrivacyShowStatusDidShow privacyInfo:AMapPrivacyInfoStatusDidContain];
[MAMapView updatePrivacyAgree:AMapPrivacyAgreeStatusDidAgree];
}
+ (instancetype)shareManager{
static DDMANaviManager *_Nullable _manager = nil;
static dispatch_once_t token;
dispatch_once(&token, ^{
_manager = [[self alloc] initWithSuper];
});
return _manager;
}
- (instancetype)initWithSuper{
self = [super init];
if (self == nil) return nil;
return self;
}
- (instancetype)init{
@throw [[NSException alloc] initWithName:NSGenericException reason:@"'init' is unavailable,please use 'shareManager' instead." userInfo:nil];
}
// MARK: <Func>
- (AMapNaviCompositeManager *)compositeManager{
if (!_compositeManager) {
_compositeManager = [[AMapNaviCompositeManager alloc] init];
}
return _compositeManager;
}
- (void)presentRoutePlanViewControllerFromCoordinate:(CLLocationCoordinate2D)fromCoordinate fromName:(nullable NSString *)fromName fromPOIId:(nullable NSString *)fromPOIId toCoordinate:(CLLocationCoordinate2D)toCoordinate toName:(nullable NSString *)toName toPOIId:(nullable NSString *)toPOIId startNaviDirectly:(BOOL)isDirectly {
//导航组件配置类 since 5.2.0
AMapNaviCompositeUserConfig *config = [[AMapNaviCompositeUserConfig alloc] init];
[config setStartNaviDirectly:isDirectly];
//传入起点,并且带高德POIId
[config setRoutePlanPOIType:AMapNaviRoutePlanPOITypeStart location:[AMapNaviPoint locationWithLatitude:fromCoordinate.latitude longitude:fromCoordinate.longitude] name:fromName POIId:fromPOIId];
//传入终点,并且带高德POIId
[config setRoutePlanPOIType:AMapNaviRoutePlanPOITypeEnd location:[AMapNaviPoint locationWithLatitude:toCoordinate.latitude longitude:toCoordinate.longitude] name:toName POIId:toPOIId];
//启动
__weak typeof(self) weakSelf = self;
dispatch_async(dispatch_get_main_queue(), ^{
__strong typeof(weakSelf) strongSelf = weakSelf;
[strongSelf.compositeManager presentRoutePlanViewControllerWithOptions:config];
});
}
@end