地图sdk详解

1  获取用户位置

需要导入CoreLocation框架

使用定位服务前,通常需要检查定位服务是否可用 :

[CLLocationManager locationServicesEnabled]

ios7 的时候,在调用定位服务时,会自动申请用户的授权

ios8 之后,在调用定位服务时,app必须主动去申请用户的授权

需要在info.plist 文件中声明相关的key

CLLocationManager: //主要处理位置和方向相关的事件

- requestWhenInUseAuthorization// 仅仅是前台可以获取位置

- requestAlwaysAuthoriz    // 在前台与后台均可获取位置

代理方法: -locationManager: didChangeAuthorizationStatus

CLAuthorizationStatus    授权状态

kCLAuthorizationStatusNotDetermined    //用户尚未决定授权权限

kCLAuthorizationStatusRestricted    //无法使用定位服务,该状态用户无法改变

kCLAuthorizationStatusDenied    //用户拒绝该应用使用定位服务,或是定位服务总开关处于关闭状态

kCLAuthorizationStatusAuthorized    //已经授权(废弃)

kCLAuthorizationStatusAuthorizedAlways  //用户允许该程序无论何时都可以使用地理信息

kCLAuthorizationStatusAuthorizedWhenInUse  //用户同意程序在可见时使用地理位置

2计算用户位移,时间,平均速度

解决方法:

1.确定模拟器(手机)已经联网并且允许程序获取地理位置

2.重置地理位置服务或者网络服务

/*-------- 计算用户位移, 时间, 平均速度 --------*/

CLLocationManager      //主要处理位置和方向相关的事件

distanceFilter  // 距离过滤值, 设备移动达到该值后才会触发代理方法

desiredAccuracy      // 定位的精确度

activityType    // 定位数据用途

- startUpdateLocation  // 开始定位

- stopUpdateLocation    // 停止定位

// CLLocationAccuracy      定位精确度

kCLLocationAccuracyBestForNavigation    //导航级最佳精准

kCLLocationAccuracyBest    //最佳精准

kCLLocationAccuracyNearestTenMeters    //10米误差

kCLLocationAccuracyHundredMeters    //百米胡茬

kCLLocationAccuracyKilometer    //千米误差

kCLLocationAccuracyThreeKilometers  //3千米误差

// CLActivityType      定位数据用途

CLActivityTypeOther    //作为普通用途

CLActivityTypeAutomotiv eNavigation    //作为车辆导航

CLActivityTypeFitness    //作为步行导航

CLActivityTypeOtherNavigation  //作为其它导航

CLLocation      //表示位置相关的信息, 如果经度/纬度/高度/速度/路线等

coordinate  //表示该位置的坐标

timestamp  // 定位信息返回的时间

speed  // 设备移动速度 单位是米/秒

- distanceFromLocation  // 计算两个点之间的距离


3 获取设备方向,制作指南针

CLHeading      // 表示设备方向相关的信息

magneticHeading    //设备与磁北的相对角度

trueHeading    //设置与真北的相对角度, 必须和定位一起使用, iOS需要位置来计算真北

弧度 = 角度 / 180 * M_PI

4 判断设备在指定的区域内

CLCircularRegion //表示圆形区域的范围

center  // 圆形范围的圆心

radius// 

5 地理编码和反地理编码

地理编码: 根据用户描述获取地标信息  NSString -> CLPlacemark

反地理编码: 根据位置获取对应的描述信息 CLLocation -> CLPlacemar

CLGeocoder: // 地理编码

- geocodeAddressString: completionHandler:      // 地理编码

- reverseGeocodeLocation: completionHandler:    // 反地理编码

6 Mapkit 基本使用

CLPlacemark    //表示地理位置信息, 包括坐标, 区域, 名称, 街道等

name        // 该地标的名称

location    // 地标的位置信息

addressDictionary  // 保存地址信息的字典

7  添加大头针

MapView    // 用于展示地图的视图

mapType    // 地图类型

userTrackingMode    // 追踪模式

//MKMapType    地图类型

MKMapTypeStandard      // 标准

MKMapTypeSatellite      // 卫星地图

MKMapTypeHybrid      // 混合地图 (卫星地图 + 标准)

//MKUserTrackingMode    追踪模式

MKUserTrackingModeNone      //不追踪

MKUserTrackingModeFollow        // 追踪用户位置

MKUserTrackingModeFollowWithHeading, // 追踪用户位置与方向

// 地图的手势支持开关:

zoomEnabled    // 放大缩小

scrollEnabled      // 拖动

rotateEnabled    // 旋转


/*-------- 添加大头针 --------*/

MKAnnotation协议(自定义大头针数据模型时需要遵守该协议)

注意在iOS9中通过代码创建的MapView上添加大头针无效


/**********************自定大头针********************/

MKPinAnnotationView    //原生大头针视图

pinColor    大头针颜色选择(MKPinAnnotationColor)

MKPinAnnotationColor    自定义大头针颜色, iOS9新增属性

canShowCallout      允许大头针点击弹出视图

leftCalloutAccessoryView    弹出视图的左边辅助视图

rightCalloutAccessoryView  弹出视图的右边辅助视图

detailCalloutAccessoryView  自定义弹出详情视图, iOS9新增属性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容