CoreLocation MKMapView
高德开发者平台 有开发指南
iOS9配置网络:
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
请看这里 原文章:http://www.oschina.net/question/262659_149771?fromerr=Y0rzKueR
1. GPS定位:<CoreAudioKit/CoreAudioKit.h>
1. 基本属性:
1>
CLLocationManager:定位管理器 协议:<CLLocationManagerdelegate> 设置代理 实现方法
CLLocation:位置的具体信息(经纬度 等等)
CLHeading:设备移动方向
CLRegion:一个区域(常用子类:CLCircularRegion:圆形 CLBeaconRegion:蓝牙)
[CLLocationManager locationServicesEnabled] 定位服务是否可用
distanceFilter:自动过滤距离 移动某个距离之后重新调用代理方法 更新位置
desiredAccuracy:定位的精度
self.manager.desiredAccuracy = kCLLocationAccuracyBest; // 最佳精度 self.manager.pausesLocationUpdatesAutomatically = YES; // 不需要的时候可以自动暂停
- (void)viewDidLoad {[super viewDidLoad];self.locationManager = [[CLLocationManager alloc] init];self.locationManager.delegate = self;// 允许定位 [self.locationManager requestAlwaysAuthorization];// 自动过滤距离 移动100米之后重新调用代理方法 更新位置self.locationManager.distanceFilter = 100.0; // 米为单位// iOS7的系统下 写完start就可以开始定位了 [self.locationManager startUpdatingLocation];// 初始化地理编码器:self.geocoder = [CLGeocoder new]; }
2> CLGeocoder 地理编码器:
创建:
self.geocoder = [CLGeocoder new];
编码:提供某个字符串 来定位位置:- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;
[self.geocoder geocodeAddressString:self.inputLocation.text completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {// 取出一个位置信息CLPlacemark *placeMark = placemarks.lastObject;// 输出信息NSLog(@"%lf %lf", placeMark.location.coordinate.latitude, placeMark.location.coordinate.longitude);}];
反编码:根据位置显示该地方的名字等等
[self.geocoder reverseGeocodeLocation:location completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {CLPlacemark *place = placemarks.lastObject;self.inputLocation.text = place.name;NSLog(@" %@",place.name);}];
2. 获取位置信息:
iOS7的系统下 写完start就可以开始定位了:
[self.locationManager startUpdatingLocation];
但是在iOS之后就需要设置是否允许定位:设置完成这个之后才可以定位
requestAlwaysAuthorization:一直允许定位
requestWhenInUseAuthorization:用户允许
在添加之前需要在info.plist 文件中添加字段:NSLocationAlwaysUsageDescription (后面的字符串知识提示的时候会显示 并没有什么用)
[self.locationManager requestAlwaysAuthorization];
2. 地图:<MapKit/MapKit.h>
1> iOS原生地图:
前面带MK的是系统自带的地图:
MKUserLocation:地图上的大头针 有title subtitle等属性
MKMapView:用来显示地图 与视图一样 初始化需要确定frame 定位的时候需要用到coreLocation框架
showsUserLocation 设置为YES 允许跟踪定位 (MKMapView的属性)
可自定义MKAnnotation
// 创建比例系数 显示在某个点上MKCoordinateRegion region = MKCoordinateRegionMake(userLocation.coordinate, MKCoordinateSpanMake(0.1, 0.1)) ; // 比例系数越小 放大效果越大self.mapView.region = region; // 系统自带
2> 高德:
多以MA开头的:
[_mapView setZoomLevel:16.0 animated:YES]; 设置缩放的比例
// 1. 验证key[MAMapServices sharedServices].apiKey = @“申请的key”;// 2. 初始化mapView = [[MAMapView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.bounds))];mapView.delegate = self;// mapView.language = MAMapLanguageEn; // 设置地图显示语言mapView.mapType = MAMapTypeStandard; // 地图类型/*MAMapTypeSatellite:卫星地图MAMapTypeStandard:标准地图*/ // mapView.showTraffic = YES; // 显示实时交通路况 [self.view addSubview:mapView];mapView.showsUserLocation = YES;
mapView的定位模式: userTrackingMode
MAUserTrackingModeNone:不跟随用户位置,仅在地图上显示。
MAUserTrackingModeFollow:跟随用户位置移动,并将定位点设置成地图中心点
MAUserTrackingModeFollowWithHeading:跟随用户的位置和角度移动
系统的地图和 高德地图 的区别:http://www.mamicode.com/info-detail-573898.html
转载于:https://www.cnblogs.com/Evelyn-zn/p/4979101.html
CoreLocation MKMapView相关推荐
- CoreLocation+MapKit系统定位(含坐标以及详细地址)
iOS8 之后出现一些新的配置 [self.manager requestWhenInUseAuthorization];并且在info.plist文件中增加NSLocationWhenInUseUs ...
- iphone:MKMapView
在iphone上实现地图并不难.在Frameworks中加入MapKit.framework,要对mapView做相应的操作时要添加一个outlet,记得#import<MapKit/MapKi ...
- MKMapView iOS的地图详细应用
定位功能 定位是一个很常用的功能,如一些地图软件打开之后如果用户允许软件定位的话,那么打开软件后就会自动锁定到当前位置,如果用户手机移动那么当前位置也会跟随着变化.要实现这个功能需要使用Core Lo ...
- iOS - MKMapView 地图
1.创建 MKMapView 地图 在 iOS6 或者 iOS7 中实现这个功能只需要添加地图控件.设置用户跟踪模式.在 mapView:didUpdateUserLocation: 代理方法中设置地 ...
- CoreLocation地理定位 Map Kit 地图展示
在这里总结一下关于地图定位的知识.CoreLocaton,Map Kit. 在移动互联网时代,移动app能解决用户的很多生活琐事,比如 导航:去任意陌生的地方 周边:找餐馆.找酒店.找银行.找电影院 ...
- [无限互联]地图框架MapView(采用MKMapView)
--------------------------MApView的功能----------------------------- MapView这个框架是在MKMapView中实现地址选择和导航功能 ...
- iOS CoreLocation和MapKit详解
引言 位置定位几乎是App中的不可或缺的功能,功能分为两部分:一部分是使用CoreLocation框架来获取地理位置经纬度:另一部分:使用MapKit将经纬度以UI的形式展示出来. 使用场景 导航软件 ...
- IOS中CoreLocation框架地理定位
1.CoreLocation框架使用前提: #import <CoreLocation/CoreLocation.h> CoreLocation框架中所有数据类型的前缀都是CL ,Core ...
- iOS MKMapView 地图视图
有时候我们做项目可能会用到地图,比如在地图上显示附近人,在微博客户端中显示附近微博... 所以我们有必要来了解一下关于地图视图 地图视图 MKMapView 继承与UIView 先来看一下属性吧 @p ...
最新文章
- EntLib 3.1学习笔记(6) : Security Application Block
- CVPR发布禁令:盲评的论文不能在社交平台上讨论!LeCun:这政策简直疯了
- 3层、5层、3层一个卷积核BP神经网络性能比较
- SOA和微服务之间的区别(应用和数据的垂直拆分水平拆分)
- Applese 涂颜色(欧拉定理降幂+快速幂)
- DSP2812程序执行过程
- POJ 2942 Knights of the Round Table ★(点双连通分量+二分图判定)
- Winfrom窗体应用程序___DataGridView
- 浅谈ASP.NET 4中构造“.NET研究”HTML5视频控件
- 社保交满15年就可以停缴了吗?就可以领取养老金了吗?
- 下一代 Windows 将至,是全新的 Windows 11 还是 Windows 10 的延续?
- 一文看懂二叉搜索树~(又叫二叉查找树) 代码+详解(C/C++)
- server 2008 php环境搭建,windows server 2008R2 x64位服务器上搭建PHP环境
- 英特尔hd630驱动_Ubuntu 16.04安装Intel显卡驱动(解决Intel HD Graphics 630显卡驱动问题)...
- js如何获取IP地址?教你4种方法
- 以阿里云服务器为例理解docker端口映射
- 计算机软件著作权查询网址
- 使用Pyppeteer进行gmail模拟登录
- Python-猫耳MF
- 服务器磁带断带修复,易备磁带版:安全合规、功能超群–Windows服务器的磁带备份软件...
热门文章
- asp.net页面回传与js调用服务端事件、PostBack的原理详解
- Tabhost嵌套以及Tab中多个Activity跳转的实现
- 如何解决头文件重复包含和宏的重复定义问题:用#ifndef 、#define、#endif
- 【自用】 Android Studio Gradle sync failed
- 仟叶学校:武汉老师最燃演讲“人生很贵,请别浪费”
- 设计模式:常见模式案例
- 《C++面向对象高效编程(第2版)》——2.16 识别成员函数的目标对象
- S2SH整合所需jar包及其详解
- NYOJ(21),BFS,三个水杯
- IOS学习动画二之 Core Animation (3)