您的位置:首页 > 移动开发 > IOS开发

IOS 地图的开发(coreLocation)

2017-12-27 22:47 309 查看

概述

API

大框架

CoreLocation:用于地理定位,地理编码区域监听等(着重功能实现)

MapKit:用于地图展示,例如大头针,路线,覆盖层展示等(着重界面展示)

内部的框架

CoreLocation框架

CoreLocation

CLLocation

ios地图开发的隐私保护(如何添加授权)

CLGeocoder

CLPlacemark

MapKit框架

MKMapView

MKCoordinateRegion

MKMapView的代理

MKUserLocation

大头针

annotation

自定义大头针

MKAnnotationView

MKPinAnnotationView

MKMapItem调用系统APP进行导航

MKMapCamera地图街景

MKMapSnapshotter地图截图

常用的类和方法

CLLocationManager

CLLocation

CLLocationCoordinate2D

CLGeocoder

CLPlacemark

CLLocationManager

CoreLocation框架中使用CLLocationManager对象来做用户定位

创建(初始化)

CLLocationManager *lM = [[CLLocationManager alloc] init];


1.manager设置定位的精准度(最优的方式,导航最好的方式,10m,100m等等),定位越远,好点越多

2.manager取出授权(authorizationStatus),没有授权,先授权。

3.manager使用startUpdating开启定位

4.使用didiupdating回调确认定位

5.使用(didChangeAuthorizationStatus)确认授权信息

CLLocation

使用属性(coordinate)获取经度,纬度,航向,海拔,速度

CLLocationCoordinate2D

里面包含经度,纬度,航向,海拔,速度信息

CLGeocoder

地理编码方法-(void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;

反地理编码方法-(void)reverseGeocodeLocation:(CLLocation *)location completionHandler:(CLGeocodeCompletionHandler)completionHandler;

[self.geoC geocodeAddressString:self.addressDetailTV.text completionHandler:^(NSArray<CLPlacemark *> * __nullable placemarks, NSError * __nullable error) {
// 包含区,街道等信息的地标对象
CLPlacemark *placemark = [placemarks firstObject];
// 城市名称
//        NSString *city = placemark.locality;
// 街道名称
//        NSString *street = placemark.thoroughfare;
// 全称
NSString *name = placemark.name;
self.addressDetailTV.text = [NSString stringWithFormat:@"%@", name];
self.latitudeTF.text = [NSString stringWithFormat:@"%f", placemark.location.coordinate.latitude];
s
}


[self.geoC reverseGeocodeLocation:location completionHandler:^(NSArray<CLPlacemark *> * __nullable placemarks, NSError * __nullable error) {
// 包含区,街道等信息的地标对象
CLPlacemark *placemark = [placemarks firstObject];
// 城市名称
//        NSString *city = placemark.locality;
// 街道名称
//        NSString *street = placemark.thoroughfare;
// 全称
NSString *name = placemark.name;
self.addressDetailTV.text = [NSString stringWithFormat:@"%@", name];
}];


CLPlacemark

@property (nonatomic, readonly) CLLocation *location;地理位置

@property (nonatomic, readonly) CLRegion *region;

区域

@property (nonatomic, readonly) NSDictionary *addressDictionary;详细的地址信息

@property (nonatomic, readonly) NSString *name;

地址名称

@property (nonatomic, readonly) NSString *locality;

城市

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #c35900 }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #587ea8 }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #587ea8 }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #c35900 }
span.s1 { }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: