ios开发--高德地图SDK使用简介
高德LBS开放平台将高德最专业的定位、地图、搜索、导航等能力,以API、SDK等形式向广大开发者免费开放。本章节我们来简单学习一下如何使用它的定位及地图SDK。
一、相关框架及环境配置
- 地图SDK
对于如何下载SDK,它的官方文档提供了很详细的说明,使用CocoaPods。如果你没有安装CocoaPods,也可以在它的官网直接下载。


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

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


由于定位与地图是不同的SDK所以一定要记得设置两次用户Key。
另外需要特别注意的是,在官方文档中对于 TARGETS-Build Settings-Architectures的环境配置,在定位和地图SDK是不同的,但是大家只要设置其中一个就可以了。
二、示例代码

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

在它的官方文档中对于需要什么样的框架有详细的说明,大家根据文档添加。
最后根据文档我们需要设置info.plist文件。

- 在AppDelegate.m文件中完成apiKey的设置
- #import <MAMapKit/MAMapKit.h>//地图SDK头文件
- #import <AMapLocationKit/AMapLocationKit.h>//定位SDK头文件
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- [MAMapServices sharedServices].apiKey = @"990c9f469d381bd72a6915b3d0c829a5";//地图SDK
- [AMapLocationServices sharedServices].apiKey =@"990c9f469d381bd72a6915b3d0c829a5";//定位SDK
- return YES;
- }
- 在viewController.m文件中引入所需属性,并完成懒加载
- #import <MAMapKit/MAMapKit.h>
- #import <AMapLocationKit/AMapLocationKit.h>
- @interface ViewController ()<MAMapViewDelegate,AMapLocationManagerDelegate>
- @property (nonatomic, strong) MAMapView *mapView;//地图视图
- @property (nonatomic, strong) AMapLocationManager *locationManager;//定位管理者
- @end
- - (MAMapView *)mapView{
- if (!_mapView) {
- _mapView = [[MAMapView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.bounds), CGRectGetHeight(self.view.bounds))];
- _mapView.delegate = self;
- _mapView.mapType = MAMapTypeStandard;//设置地图类型
- _mapView.showTraffic= YES;//是否显示交通图
- [self.locationManager startUpdatingLocation];//开始定位
- [_mapView setUserTrackingMode: MAUserTrackingModeFollow animated:YES];//定位以后改变地图的图层显示。
- [self.view addSubview:_mapView];
- }
- return _mapView;
- }
- - (AMapLocationManager *)locationManager{
- if (!_locationManager) {
- _locationManager = [[AMapLocationManager alloc] init];
- _locationManager.delegate = self;
- }
- return _locationManager;
- }
- - (void)viewDidLoad {
- [super viewDidLoad];
- [self locationManager];
- [self mapView];
- }
- 完成定位和“大头针”功能
- //AMapLocationManager代理方法位置更新以后回调。
- - (void)amapLocationManager:(AMapLocationManager *)manager didUpdateLocation:(CLLocation *)location
- {
- NSLog(@"location:{lat:%f; lon:%f; accuracy:%f}", location.coordinate.latitude, location.coordinate.longitude, location.horizontalAccuracy);
- }
- -(void) viewDidAppear:(BOOL)animated
- {
- [super viewDidAppear:animated];
- MAPointAnnotation *pointAnnotation = [[MAPointAnnotation alloc] init];
- pointAnnotation.coordinate = CLLocationCoordinate2DMake(31.982527, 118.735046);
- pointAnnotation.title = @"宏创科技";
- pointAnnotation.subtitle = @"国家广告产业园XXX";
- [self.mapView addAnnotation:pointAnnotation];
- }
- //MAMapView代理方法,用来设置大头针
- - (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id )annotation
- {
- if ([annotation isKindOfClass:[MAPointAnnotation class]])
- {
- static NSString *pointReuseIndentifier = @"pointReuseIndentifier";
- MAPinAnnotationView*annotationView = (MAPinAnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:pointReuseIndentifier];
- if (annotationView == nil)
- {
- annotationView = [[MAPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:pointReuseIndentifier];
- }
- annotationView.canShowCallout= YES; //设置气泡可以弹出,默认为NO
- annotationView.animatesDrop = YES; //设置标注动画显示,默认为NO
- annotationView.draggable = YES; //设置标注可以拖动,默认为NO
- annotationView.pinColor = MAPinAnnotationColorPurple;
- return annotationView;
- }
- return nil;
- }
ios开发--高德地图SDK使用简介的更多相关文章
- iOS开发——百度地图SDK集成
(正在形成文档,待更新……)
- iOS开发UI篇—核心动画简介
转自:http://www.cnblogs.com/wendingding/p/3801036.html iOS开发UI篇—核心动画简介 一.简单介绍 Core Animation,中文翻译为核心动画 ...
- 使用高德地图SDK获取定位信息
使用高德地图SDK获取定位信息 第一步: 在高德官网下载SDK,如我这里需要获取定位信息,故仅下载"定位功能" 第二步: 注册成为开发者,并创建应用获取相应的key.其中,在使用A ...
- 百度地图开发-引入地图SDK并配置 02
百度地图开发-引入地图SDK并配置 02 通过上一篇文章的介绍,基本了解百度地图的基本信息,接下来就让我们一起来实际在项目中操作,显示出地图. 01 引入地图SDK 首先需要新建一个空白的Androi ...
- iOS开发系列--地图与定位
概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一个 ...
- iOS导入高德地图出现缺失armv7--"Undefined symbols for architecture armv7"
在已有项目中使用pod导入高德地图,报了以下错误: ld: warning: directory not found for option '-L/Users/paul/iOS/yun-hui-yi/ ...
- 转-iOS开发系列--地图与定位
来自: http://www.cnblogs.com/kenshincui/p/4125570.html#autoid-3-4-0 概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功 ...
- iOS开发---百度地图配置流程,2.6.0 版本 支持64位
1.首先需要在百度地图下载最新SDK:地址: http://developer.baidu.com/map/index.php?title=iossdk/sdkiosdev-download 2. ...
- iOS开发----调用地图导航
注意:本文章下的代码有个别变量未知,所以是不能直接跑通的,我也是转别人的 在IOS6.0系统后,兼容iOS5.0与iOS6.0地图导航,需要分两个步骤 #define SYSTEM_VERSION_L ...
随机推荐
- 解析php mysql 事务处理回滚操作(附实例)
其实用PHP来处理mysql的事务回滚并不难,下面小编就详细的为大家介绍一下.相信大家看完之后都知道如何使用 很多新手在进行项目过程中,会碰到这样一种情况,如:论坛扣币项目中,用户支付论坛币的时候如果 ...
- [转]Linux下修改/设置环境变量JAVA_HOME
1. 永久修改,对所有用户有效 # vi /etc/profile //按键盘[Shift + g], 在profile文件最后添加下面的内容: export JAVA_HOME = /home/m ...
- Oracle定义两个变量,并对两个变量的值的长度进行判断
这个例子其实很简单,但是往往简单的东西如果不用心就会漏洞百出,简单的一个逻辑判断,是为了给复杂逻辑判断做出铺垫 语法格式: if<condition_expression> then pl ...
- [转]如何利用ndk-stack工具查看so库的调用堆栈【代码示例】?
如何利用ndk-stack工具查看so库的调用堆栈[代码示例]? http://hi.baidu.com/subo4110/item/d00395b3bf63e4432bebe36d Step1:An ...
- 【CocoaPods】配置CocoaPods前 - 本地安装好Ruby环境
xcode (反正就是代码编辑器) Xcode就不用说了把. homebrew (反正就是软件管理器) homebrew是一个包管理器,用于在mac上安装一些os x上没有的UNiX工具(比如wget ...
- cocos2dx中的设计分辨率与屏幕适配策略
1.首先明确几个概念: 设计分辨率:designResolution,即资源图片的设计尺寸,即美工给你的资源图片的大小,比如(641*964) 屏幕分辨率:又叫帧的大小,glview->setF ...
- clion 帮助文档 EN
下载时间 2015年10月 下载地址:http://pan.baidu.com/s/1E4fgE 备用地址:链接:http://pan.baidu.com/s/1bn6u5Wj 密码:icn4
- linux 下安装 nginx
安装nginx版本为1.7.5 一.下载nginx 官方地址:http://www.nginx.org/ 下载地址:http://nginx.org/download/ Nginx官网提供了三个类型的 ...
- 【贪心】Bzoj 2457:[BeiJing2011]双端队列
2457: [BeiJing2011]双端队列 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 209 Solved: 95[Submit][Stat ...
- 【BZOJ】【2157】旅游
LCT 直到动手写拆边为点的时候才发现根本不会写……去orz了一下Hzwer(话说这题应该也用不着LCT吧……下次再换种姿势写一遍好了) /****************************** ...