高德LBS开放平台将高德最专业的定位、地图、搜索、导航等能力,以API、SDK等形式向广大开发者免费开放。本章节我们来简单学习一下如何使用它的定位及地图SDK。

一、相关框架及环境配置

  • 地图SDK

对于如何下载SDK,它的官方文档提供了很详细的说明,使用CocoaPods。如果你没有安装CocoaPods,也可以在它的官网直接下载。

接下来只需要将SDK引入工程,完成相关的环境配置即可。在它的官方文档中有详细说明,这里就不重复了。

地图SDK文档

  • 定位SDK

高德 iOS 定位 SDK 提供了不依赖于地图定位的定位功能,开发者可以无地图显示的场景中便捷地为应用程序添加定位功能。它的定位 SDK中提供的持续定位功能与地图功能分离。同样我们先下载SDK。

由于定位与地图是不同的SDK所以一定要记得设置两次用户Key。

另外需要特别注意的是,在官方文档中对于 TARGETS-Build Settings-Architectures的环境配置,在定位和地图SDK是不同的,但是大家只要设置其中一个就可以了。

定位SDK文档

二、示例代码

  • 引入相关框架,并完成环境配置

在它的官方文档中对于需要什么样的框架有详细的说明,大家根据文档添加。

最后根据文档我们需要设置info.plist文件。

  • 在AppDelegate.m文件中完成apiKey的设置
  1. #import <MAMapKit/MAMapKit.h>//地图SDK头文件
  2. #import <AMapLocationKit/AMapLocationKit.h>//定位SDK头文件
  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  2. [MAMapServices sharedServices].apiKey = @"990c9f469d381bd72a6915b3d0c829a5";//地图SDK
  3. [AMapLocationServices sharedServices].apiKey =@"990c9f469d381bd72a6915b3d0c829a5";//定位SDK
  4. return YES;
  5. }
  • 在viewController.m文件中引入所需属性,并完成懒加载
  1. #import <MAMapKit/MAMapKit.h>
  2. #import <AMapLocationKit/AMapLocationKit.h>
  1. @interface ViewController ()<MAMapViewDelegate,AMapLocationManagerDelegate>
  2. @property (nonatomic, strong) MAMapView *mapView;//地图视图
  3. @property (nonatomic, strong) AMapLocationManager *locationManager;//定位管理者
  4. @end
  1. - (MAMapView *)mapView{
  2. if (!_mapView) {
  3. _mapView = [[MAMapView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.bounds), CGRectGetHeight(self.view.bounds))];
  4. _mapView.delegate = self;
  5. _mapView.mapType = MAMapTypeStandard;//设置地图类型
  6. _mapView.showTraffic= YES;//是否显示交通图
  7. [self.locationManager startUpdatingLocation];//开始定位
  8. [_mapView setUserTrackingMode: MAUserTrackingModeFollow animated:YES];//定位以后改变地图的图层显示。
  9. [self.view addSubview:_mapView];
  10. }
  11. return _mapView;
  12. }
  13. - (AMapLocationManager *)locationManager{
  14. if (!_locationManager) {
  15. _locationManager = [[AMapLocationManager alloc] init];
  16. _locationManager.delegate = self;
  17. }
  18. return _locationManager;
  19. }
  20. - (void)viewDidLoad {
  21. [super viewDidLoad];
  22. [self locationManager];
  23. [self mapView];
  24. }
  • 完成定位和“大头针”功能
  1. //AMapLocationManager代理方法位置更新以后回调。
  2. - (void)amapLocationManager:(AMapLocationManager *)manager didUpdateLocation:(CLLocation *)location
  3. {
  4. NSLog(@"location:{lat:%f; lon:%f; accuracy:%f}", location.coordinate.latitude, location.coordinate.longitude, location.horizontalAccuracy);
  5. }
  6. -(void) viewDidAppear:(BOOL)animated
  7. {
  8. [super viewDidAppear:animated];
  9. MAPointAnnotation *pointAnnotation = [[MAPointAnnotation alloc] init];
  10. pointAnnotation.coordinate = CLLocationCoordinate2DMake(31.982527, 118.735046);
  11. pointAnnotation.title = @"宏创科技";
  12. pointAnnotation.subtitle = @"国家广告产业园XXX";
  13. [self.mapView addAnnotation:pointAnnotation];
  14. }
  15. //MAMapView代理方法,用来设置大头针
  16. - (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id )annotation
  17. {
  18. if ([annotation isKindOfClass:[MAPointAnnotation class]])
  19. {
  20. static NSString *pointReuseIndentifier = @"pointReuseIndentifier";
  21. MAPinAnnotationView*annotationView = (MAPinAnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:pointReuseIndentifier];
  22. if (annotationView == nil)
  23. {
  24. annotationView = [[MAPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:pointReuseIndentifier];
  25. }
  26. annotationView.canShowCallout= YES; //设置气泡可以弹出,默认为NO
  27. annotationView.animatesDrop = YES; //设置标注动画显示,默认为NO
  28. annotationView.draggable = YES; //设置标注可以拖动,默认为NO
  29. annotationView.pinColor = MAPinAnnotationColorPurple;
  30. return annotationView;
  31. }
  32. return nil;
  33. }

ios开发--高德地图SDK使用简介的更多相关文章

  1. iOS开发——百度地图SDK集成

    (正在形成文档,待更新……)

  2. iOS开发UI篇—核心动画简介

    转自:http://www.cnblogs.com/wendingding/p/3801036.html iOS开发UI篇—核心动画简介 一.简单介绍 Core Animation,中文翻译为核心动画 ...

  3. 使用高德地图SDK获取定位信息

    使用高德地图SDK获取定位信息 第一步: 在高德官网下载SDK,如我这里需要获取定位信息,故仅下载"定位功能" 第二步: 注册成为开发者,并创建应用获取相应的key.其中,在使用A ...

  4. 百度地图开发-引入地图SDK并配置 02

    百度地图开发-引入地图SDK并配置 02 通过上一篇文章的介绍,基本了解百度地图的基本信息,接下来就让我们一起来实际在项目中操作,显示出地图. 01 引入地图SDK 首先需要新建一个空白的Androi ...

  5. iOS开发系列--地图与定位

    概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一个 ...

  6. iOS导入高德地图出现缺失armv7--"Undefined symbols for architecture armv7"

    在已有项目中使用pod导入高德地图,报了以下错误: ld: warning: directory not found for option '-L/Users/paul/iOS/yun-hui-yi/ ...

  7. 转-iOS开发系列--地图与定位

    来自: http://www.cnblogs.com/kenshincui/p/4125570.html#autoid-3-4-0 概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功 ...

  8. iOS开发---百度地图配置流程,2.6.0 版本 支持64位

      1.首先需要在百度地图下载最新SDK:地址: http://developer.baidu.com/map/index.php?title=iossdk/sdkiosdev-download 2. ...

  9. iOS开发----调用地图导航

    注意:本文章下的代码有个别变量未知,所以是不能直接跑通的,我也是转别人的 在IOS6.0系统后,兼容iOS5.0与iOS6.0地图导航,需要分两个步骤 #define SYSTEM_VERSION_L ...

随机推荐

  1. Delphi 和 C++Builder 2014年及以后技术路线图

    RAD Studio, Delphi 和 C++Builder 2014年及以后技术路线图 By: Embarcadero News 内容源自Embarcadero新闻组,本人水平有限,欢迎各位高人修 ...

  2. Django之Model(一)--基础篇

    0.数据库配置 django默认支持sqlite,mysql, oracle,postgresql数据库.Django连接数据库默认编码使用UTF8,使用中文不需要特别设置. sqlite djang ...

  3. VC2010 MFC文档类菜单快捷键无法加载问题

    问题1. 在菜单中项中输入&Run\tF5, 运行显示Run,而不是Run F5. 问题2.在Accelerator中绑定了快捷键,但运行程序不起作用. 以上2中问题在VC++2008和VC+ ...

  4. SQLserver通过链接服务器连接oracle

    在SQLserver中一直使用的是DTS抽取数据,但是DTS微软只支持到2008,到了2012后就没有这个工具了,现在需要在SQLserver跟Oracle中间建立一个通道,借助这个通道,将Oracl ...

  5. java实现合并两个已经排序的列表

    相对于C++来说,Java的最大特点之一就是没有令人困惑的指针,但是我们不可否认,在某些特定的情境下,指针确实算的上一把利刃.虽然Java中没有明确定义出指针,但是由于类的思想,我们可以使用class ...

  6. Oracle RAC中的一台机器重启以后无法接入集群

          前天有个同事说有套AIX RAC的其中一台服务器重启了操作系统以后,集群资源CSSD的资源一直都在START的状态,检查日志输出有如下内容: [    CSSD][1286]clssnmv ...

  7. 键盘样式风格有关设置-iOS开发

    一.键盘风格 UIKit框架支持8种风格键盘. typedef  enum  { UIKeyboardTypeDefault,                 // 默认键盘:支持所有字符 UIKey ...

  8. [MySql] - 解决部署的服务器没有安装MySql Connector

    1. 在C盘安装mysql的位置找到三个DLL,复制到Bin文件夹下. 2. 在配置文件的web下添加引用,PubulishKeyToken 根据版本来. <system.data> &l ...

  9. SpringMVC+redis整合

    在网络上有一个很多人转载的springmvc+redis整合的案例,不过一直不完整,也是被各种人装来转去,现在基本将该框架搭建起来. package com.pudp.bae.base; import ...

  10. 复习JS和jQuery

    复习JS和jQuery 近些时日,以前学过的东西忘了好多.今天且写一点复习一下JS和jQuery.希冀与某年某月某日,忘却的时候,能看一下自己写的博文,尚可记起一二. 现在有需求如下:有两个按钮,一个 ...