美文网首页
iOS 集成高德地图

iOS 集成高德地图

作者: 达_Ambition | 来源:发表于2018-12-05 22:17 被阅读38次

参考文档:
iOS 跳转方式实现地图导航功能

应用内导航

是指使用地图服务提供的SDK(比如高德,百度等等),直接将导航功能嵌入到我们自己的APP内部
但是这个方案我个人不喜欢,一是接入要一定的时间,二是增加APP的内存占用。

一、高德导航(应用内导航)
1、cocoaPods 安装高德导航SDK
platform :ios, "7.0" target 'yourTargetName' do pod 'AMapNavi' #导航SDK end
2、配置 Info.plist 文件。
由于导航需要定位,需申请定位权限,在 Info.plist 中加入 NSLocationAlwaysUsageDescription 字段。
3、在 AppDelegate.m 文件中
  1) 引入头文件 #import <AMapFoundationKit/AMapFoundationKit.h>
  2) 在didFinishLaunchingWithOptions 方法中配置高德 Key。
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
    ……
    [AMapServices sharedServices].apiKey = "您的Key";
    ……
    }
4、在要跳转到高德导航地图的视图控器中
  1)倒入头文件#import <AMapNaviKit/AMapNaviKit.h>
  2)创建属性:compositeManager
    @property (nonatomic, strong) AMapNaviCompositeManager *compositeManager;
  3)在跳转的点击方法中
          [cell.mapBtn addActionHandler:^(NSInteger tag) {
                NSLog(@"点击了地图");
                // 初始化
                self.compositeManager = [[AMapNaviCompositeManager alloc] init];
                // 如果需要使用AMapNaviCompositeManagerDelegate的相关回调(如自定义语音、获取实时位置等),需要设置delegate
//                self.compositeManager.delegate = weakSelf;
                // 通过present的方式显示路线规划页面, 在不传入起终点启动导航组件的模式下,options需传入nil
//                [self.compositeManager presentRoutePlanViewControllerWithOptions:nil];
                AMapNaviCompositeUserConfig *config = [[AMapNaviCompositeUserConfig alloc] init];
                [config setRoutePlanPOIType:AMapNaviRoutePlanPOITypeEnd location:[AMapNaviPoint locationWithLatitude:[self.model.store_y floatValue] longitude:[self.model.store_x floatValue]] name:self.model.title POIId:nil];  //传入终点
                [self.compositeManager presentRoutePlanViewControllerWithOptions:config];
            }];
应用外导航

是以URI跳转的方式(在iOS中就是以URL Scheme的方式),直接跳到对应的地图APP中,直接利用对方的功能来导航。
这样的优点,一是接入方便,二是不增加自己APP的开销;缺点就是如果用户没有装这个地图应用就没办法使用这个地图的服务。

一、跳转到苹果自带地图
1、苹果提供了另一种方式:MKMapItem(要使用记得导入#import <MapKit/MapKit.h> 头文件)
2、实现代码:
    CLLocationCoordinate2D loc = CLLocationCoordinate2DMake([self.model.latitude floatValue], [self.model.longitude floatValue]);
    MKMapItem *currentLocation = [MKMapItem mapItemForCurrentLocation];
    MKMapItem *toLocation = [[MKMapItem alloc] initWithPlacemark:[[MKPlacemark alloc] initWithCoordinate:loc addressDictionary:nil]];
    [MKMapItem openMapsWithItems:@[currentLocation, toLocation]
                   launchOptions:@{MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving,
                                   MKLaunchOptionsShowsTrafficKey: [NSNumber numberWithBool:YES]}];
    toLocation.name =self.model.title;//终点地址名称

相关文章

  • iOS 高德地图的使用

    iOS:高德地图的使用 本人花了点时间集成了高德地图的几乎所有的功能,包含:地图的显示、地图的绘制、地图的定位、地...

  • 安卓run keystore缺失问题

    前段时间集成高德地图需求,网上有位大神根据uikitview和PlatformView原理开发了高德插件,ios安...

  • 地图集成调研

    地图集成调研 主要地图API有百度地图、高德地图、腾讯地图、搜狗地图(android、IOS暂不开放)。 百度地图...

  • 集成iOS高德地图

    一、前奏 这里只是个人集成过程中的遇到的点,现做下标记。 1,如果你需要集成涉及国外版地图,基于HTTPS的最新版...

  • iOS集成高德地图

    在进行iOS客户端开发的过程中,可能会用到高德地图的相关功能,下面我将对我所知道的功能进行描述。 发送当前地理位置...

  • iOS 集成高德地图

    参考文档:iOS 跳转方式实现地图导航功能 应用内导航 是指使用地图服务提供的SDK(比如高德,百度等等),直接将...

  • flutter 高德地图SDK 接入

    本篇为flutter 项目集成高德地图flutter插件,话不多说,直接上代码 iOS 端 创建账号 创建高德账号...

  • hbuilder ios 离线打包框架(适配iphonex)集成

    hbuilder ios 离线打包框架(适配iphonex)集成高德地图总结: 1.目前hbuilder内置的是百...

  • 高德地图添加大头针和周边搜索

    1.集成高德地图: 在高德官网导入sdk,初始化地图 -(void)initMapView { ///地图需要...

  • iOS 高德地图 仿大众点评 区域内搜索

    仿大众点评 区域内搜索 1 申请KEY(1)到高德开放平台-我的应用申请iOS key; 2.集成高德地图SDK(...

网友评论

      本文标题:iOS 集成高德地图

      本文链接:https://www.haomeiwen.com/subject/dmjgcqtx.html