地图笔记

01. CLLocation

--------------------------------------------------------

CLLocationManager 定位管理者

CLLocation 代表位置(经度/纬度/高度/速度/路线等)

CLHeading  代表移动方向

CLRegion   代表一个区域

>CLCircularRegion  圆形区域

>CLBeaconRegion 蓝牙信号区域

返回定位服务是否可用

[CLLocationManager locationServicesEnabled];

返回延迟定位更新是否可用

[CLLocationManager deferredLocationUpdatesAvailable];

返回重大位置改变监听是否可用

[CLLocationManager significantLocationChangeMonitoringAvailable];

返回是否支持磁力计算方向

[CLLocationManager headingAvailable];

返回蓝牙信号范围服务是否可用

[CLLocationManager isRangingAvailable];

--------------------------------------------------------

设置是否可以暂停定位来节省电池电量, YES不需要定位数据时自动暂停定位

// mgr.pausesLocationUpdatesAutomatically

--------------------------------------------------------

每隔多少米定位一次, 只有水平方向超过该值时才会重新定位

// mgr.distanceFilter = 100;

--------------------------------------------------------

定位精确度

// mgr.desiredAccuracy;

kCLDistanceFilterNone;

kCLLocationAccuracyBestForNavigation 导航级最佳精准

kCLLocationAccuracyBest; 最佳精准

kCLLocationAccuracyNearestTenMeters; 10米误差

kCLLocationAccuracyHundredMeters; 百米胡茬

kCLLocationAccuracyKilometer;  千米误差

kCLLocationAccuracyThreeKilometers; 3千米误差

--------------------------------------------------------

定位数据的用途

// mgr.activityType;

CLActivityTypeOther 作为普通用途

CLActivityTypeAutomotiveNavigation  作为车辆导航

CLActivityTypeFitness  作为不行

CLActivityTypeOtherNavigation 作为其它导航

--------------------------------------------------------

// CLLocation

location.coordinate; 坐标, 包含经纬度

location.altitude; 设备海拔高度 单位是米

location.course; 设置前进方向 0表示北 90东 180南 270西

location.horizontalAccuracy; 水平精准度

location.verticalAccuracy; 垂直精准度

location.timestamp; 定位信息返回的时间

location.speed; 设备移动速度 单位是米/秒, 适用于行车速度而不太适用于不行

/*

可以设置模拟器模拟速度

bicycle ride 骑车移动

run 跑动

freeway drive 高速公路驾车

*/

--------------------------------------------------------

// CLAuthorizationStatus

用户从未选择过权限

kCLAuthorizationStatusNotDetermined

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

kCLAuthorizationStatusRestricted

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

kCLAuthorizationStatusDenied

已经授权(废弃)

kCLAuthorizationStatusAuthorized

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

kCLAuthorizationStatusAuthorizedAlways

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

kCLAuthorizationStatusAuthorizedWhenInUse

--------------------------------------------------------

// 计算两个位置之间的距离, 单位是米

[newLocation distanceFromLocation:self.prevLocation];

--------------------------------------------------------

获取方向信息不会提示用户(不需要授权), 因为不会泄露隐私

// [self.mgr startUpdatingHeading];

magneticHeading 设备与磁北的相对角度

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

真北始终指向地理北极点

磁北对应随着时间变化的地球磁场北极

// 牛逼的地方

116.958776,36.721199

--------------------------------------------------------

// 错误:使用CoreLocation获取地理位置信息,报错

Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed. (kCLErrorDomain error 0.)"

解决方法:

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

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

PS:如果是模拟器就果断直接重置模拟器吧  IOS Simulator - Reset Content and Settings..。

iOS:地图笔记的更多相关文章

  1. iOS学习笔记-地图MapKit入门

    代码地址如下:http://www.demodashi.com/demo/11682.html 这篇文章还是翻译自raywenderlich,用Objective-C改写了代码.没有逐字翻译,如有错漏 ...

  2. iOS开发笔记15:地图坐标转换那些事、block引用循环/weak–strong dance、UICollectionviewLayout及瀑布流、图层混合

    1.地图坐标转换那些事 (1)投影坐标系与地理坐标系 地理坐标系使用三维球面来定义地球上的位置,单位即经纬度.但经纬度无法精确测量距离戒面积,也难以在平面地图戒计算机屏幕上显示数据.通过投影的方式可以 ...

  3. iOS学习笔记-精华整理

    iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始 ...

  4. iOS学习笔记总结整理

    来源:http://mobile.51cto.com/iphone-386851_all.htm 学习IOS开发这对于一个初学者来说,是一件非常挠头的事情.其实学习IOS开发无外乎平时的积累与总结.下 ...

  5. IOS学习笔记48--一些常见的IOS知识点+面试题

      IOS学习笔记48--一些常见的IOS知识点+面试题   1.堆和栈什么区别? 答:管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制:对于堆来说,释放工作由程序员控制,容易产生memor ...

  6. iOS学习笔记20-地图(二)MapKit框架

    一.地图开发介绍 从iOS6.0开始地图数据不再由谷歌驱动,而是改用自家地图,当然在国内它的数据是由高德地图提供的. 在iOS中进行地图开发主要有三种方式: 利用MapKit框架进行地图开发,利用这种 ...

  7. iOS学习笔记——AutoLayout的约束

    iOS学习笔记——AutoLayout约束 之前在开发iOS app时一直以为苹果的布局是绝对布局,在IB中拖拉控件运行或者直接使用代码去调整控件都会发上一些不尽人意的结果,后来发现iOS在引入了Au ...

  8. 如何在iOS地图上高效的显示大量数据

    2016-01-13 / 23:02:13 刚才在微信上看到这篇由cocoachina翻译小组成员翻译的文章,觉得还是挺值得参考的,因此转载至此,原文请移步:http://robots.thought ...

  9. IOS学习笔记25—HTTP操作之ASIHTTPRequest

    IOS学习笔记25—HTTP操作之ASIHTTPRequest 分类: iOS2012-08-12 10:04 7734人阅读 评论(3) 收藏 举报 iosios5网络wrapper框架新浪微博 A ...

随机推荐

  1. CSS3 文本效果(阴影)

    CSS3中包含几个新的文本特征. 在本章中您将了解以下文本属性: text-shadow box-shadow text-overflow word-wrap word-break CSS3 的文本阴 ...

  2. nginx启动脚本(class练习)

    说明:使用类的方式编写程序启动脚本(练习) 1 #!/usr/bin/env python import sys import os from subprocess import Popen,PIPE ...

  3. Linux上Core Dump文件的形成和分析

    原文: http://baidutech.blog.51cto.com/4114344/904419 Core,又称之为Core Dump文件,是Unix/Linux操作系统的一种机制,对于线上服务而 ...

  4. C++实现高斯滤波器

    在matlab中,我们经常用到高斯滤波器,生成滤波器一般都是这样的函数psf =   fspecial('gauss', GaussSize, sigma),但是在vs2010中用到的高斯滤波器不能自 ...

  5. JavaScript变量、数据类型、函数

    #转载请留言联系 说在前面: JavaScript 是一种弱类型语言,javascript的变量类型由它的值来决定. JavaScript语句的末尾用 ; 结束.空格没有特殊意义. 1.JavaScr ...

  6. 【计算机网络】http中get和post的区别

    常见回答: 1. GET使用URL或Cookie传参.而POST将数据放在BODY中. 2. GET的URL会有长度上的限制,则POST的数据则可以非常大. 3. POST比GET安全,因为数据在地址 ...

  7. java Class.forName()

    Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识.这项信息纪录了每个对象所属的类. 虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class ...

  8. 区块链开发(七)truffle使用入门汇总

    截止上篇博客,以太坊区块链开发的环境和框架基本上搭建完毕.这一篇博客重点梳理一下基本的流程和操作演示. 前奏 基于前面的安装配置,现在重新梳理一遍,以前博客讲到的就在这里一笔带过. (1)创建一个工作 ...

  9. TCP,UDP,IP包头格式及说明(zz)

    一.MAC帧头定义 /数据帧定义,头14个字节,尾4个字节/ typedef struct _MAC_FRAME_HEADER { ]; //目的mac地址 ]; //源mac地址 short m_c ...

  10. nginx部署vue工程和反向代理nodejs工程

    前端是vue,后端是nodejs 前端打包成dist目录,后端接口是localhost:4000/api server { listen 80; #listen [::]:80; server_nam ...