【读书笔记】iOS-定位服务与地图应用开发
一,定位服务。
iOS设备能提供3种不同的定位途径:
1,WiFi定位,通过查询一个WiFi路由器的地理位置的信息,比较省电;iPhone,Ipod touch 和iPad都可以。
2,蜂窝式移动电话基站定位,通过移动运营商基站定位,只有iPhone,3G版本的iPod touch和iPad可以采用。
3,GPS卫星定位,通过3~4颗GPS卫星位置定位,最为准确,但是耗电量大,不能遮挡,iPhone,iPod touch和iPad都可以采用。
iOS不像android系统在定位服务编程时可以指定采用哪种途径进行定位。iOS的API把底层这些细节屏蔽掉了,开发人员和用户并不知道现在设备采用哪种方式进行定位,iOS系统会根据设备的情况和周围的环境,采用一太最佳的解决方案。这个方案是这样的:如果能够接收GPS信息,那么设备优先采用GPS定位,否则采用WiFi或蜂窝基站定位,在WiFi和蜂窝基站之间优先使用WiFi,如果无法连接WiFi才使用蜂窝基站定位。
总体来说,GPS定位的优点是准确,覆盖面广阔,缺点是不能被遮挡(例如在建筑物里收不到GPS卫星信号),GPS开启后比较费电。蜂窝基站不仅误差比较大,而且会耗费用户流量费。而WiFi定位应该是最经济实惠的。
二,定位服务编程
1,精度越高请求获得位置信息的频率越高,这就意味着设备越耗电。
2,调用方法startUpdatingLocation定位服务就会开启,它根据设定的条件,不断地请求回调新的位置信息。因此开启这个方法一定要慎重,要在最合适的时候开,在视图控制器的声明周期方法中viewWillAppear:方法是最合适的。停止服务的方法是stopUpdatingLocation,它是视图控制器的viewWillAppear:方法中调用的,代码如下:
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
//停止定位
[_locationManager stopUpdatingLocation];
}
三,地理信息反编码
地标类属性:
1,addressDictionary,地址信息的字典,包含一些键值对,其中的键是在Address Book framework(地址簿框架)中定义好的。
2,ISOcountryCode,ISO国家代号;
3,country,国家信息。
4,postalCode,邮政编码。
5,administrativeArea,行政区域信息。
6,subAdministrativeArea,行政区域附加信息。
7,locality,指定城市信息。
8,subLocality,指定城市信息附加信息。
9.thoroughfare,指定街道级别信息。
10,subThoroughfare,指定街道级别的附加信息。
四,关于定位服务的测试。
定位服务应用的测试和运行有两个选择:模拟器和设备。原则上是先通过模拟器,然后使用设备测试。由于定位服务的特别,使用设备测试需要我们拿着设备到现场进行测试,因此有的时候是有局限性的,我们不可能为了测试香港有没有叫“南城”的饭馆去一趟香港。所以,模拟器的测试,有时候是不可替代的。
一般使用www.mygeoposition.com通过的GPX工具。这是一个免费提供地理信息编码和反编码,生成KML和GPX文件等服务的网站。
五,使用iOS6苹果地图。
在iOS6之后不再使用谷歌地图了,而是使用苹果自己的地图,但是API编码接口没有太大的变化,使得开发人员不需要学习新东西才能进行地图的开发。这是负责任的做法。
iOS应用程序 使用MapKit API开发地图应用程序。其核心是MKMapView类使用。
六,使用程序外地图。
应用中调用程序外的地图有两个选择:iOS6苹果地图和谷歌Web地图。
七,调用谷歌的Web地图API进行开发地图应用程序,但这里所涉及的技术都是Web技术了,而非本地技术。
八,使用本地化的百度地图。
1,百度地图使用C++编写,我们需要把我们工程中一个*.m文件改成*.mm,就可以了。*.mm说明这个文件是Object-C++代码文件,即代码模块中可以有C++代码。
2,需要注意的是苹果iOS SDK提供了CLGeocoder类,也可以实现地理信息的编码和反编码,但是如果你采用的地图是百度地图,那么在地理信息编码和反编码时候,也最好采用百度地图提供的API。
参考资料:《iOS网络编程与云端应用-最佳实践》
【读书笔记】iOS-定位服务与地图应用开发的更多相关文章
- IOS 定位服务与地图的应用开发
1.定位服务 现在的移动设备很多都提供定位服务,IOS设备提供3种不同定位途径: (1)WiFi定位,通过查询一个WiFi路由器的地理位置的信息,比较省电:IPhone,IPod touch和IPad ...
- IOS定位服务的应用
IOS定位服务的应用 一.授权的申请与设置 二.定位服务相关方法 三.定位服务代理的相关方法 四.定位服务获取到的位置对象 五.航标定位得到的航标信息对象 IOS定位服务的应用 一.授权的申请与设置 ...
- IOS定位核心与地图
IOS定位核心与地图 Core Location以及Map框架包通常能给我们的应用程序添加定位和地图相关的服务.Core Location框架包通常是使用硬件设备来进行 ...
- 读书笔记--大规模web服务开发技术
总评 这本书是日本一个叫hatena的大型网站的CTO写的,通过hatena网站从小到大的演进来反应一个web系统从小到大过程中的各种系统和技术架构变迁,比较接地气. 书的内容 ...
- iOS定位服务CoreLocation
欢迎訪问我的新博客: 开发人员说 基于LBS的应用开发是当今移动开发中的一大热门, 当中主要涉及到地图和定位两个方面. iOS开发中, 定位服务依赖于CoreLocation框架, CLLocatio ...
- iOS定位服务编程详解
现在的移动设备很多都提供定位服务,使用iOS系统的iPhone.iPod Touch和iPad都可以提供位置服务,iOS设备能提供3种不同途径进行定位:Wifi, 蜂窝式移动电话基站, GPS卫星 i ...
- iOS 定位服务、通讯录、日历、提醒事项、照片、蓝牙共享、麦克风、相机等授权检测
金田 iOS系统版本的不断升级的前提,伴随着用户使用设备的安全性提升,iOS系统对于App需要使用的硬件限制也越来越严格,App处理稍有不妥,轻则造成功能不可用用户还不知道,重则会造成App Cras ...
- [读书笔记]iOS 7 UI设计 对比度
好久没写随笔了,最近在读<iOS 7 byTutorials>,很不错,推荐给大家. 每一个好的程序员也都是一个设计师,不懂设计的程序员不是好的CTO.哈哈,开个小玩笑. iOS 7设计的 ...
- 读书笔记-iOS核心动画高级技巧
如果不使用+imageNamed:,那么把整张图片绘制到CGContext可能是最佳的方式了. 这里我们利用了CALayer的KVC来存储和检索任意的值,将图层和索引打标签. 使用KVC打标签
随机推荐
- D15——C语言基础学PYTHON
C语言基础学习PYTHON——基础学习D15 20180926内容纲要: 1.CSS介绍 2.CSS的四种引入方式 3.CSS选择器 4.CSS常用属性 5.小结 6.练习 1 CSS介绍 层叠样式表 ...
- python学习笔记11-文件操作方法
f=open("1.txt","r",encoding='utf-8') # a=f.readline() print(a) #光标会移动 下面两者结果不一样 ...
- git小乌龟工具TortoiseGit记住你的账号密码
在使用TortoiseGit的过程中,发下每次push或者pull都要重复输入账号密码,非常麻烦 怎么设置记住密码 在[系统盘]:\Users[你的用户名](比如C:\User\Administrat ...
- tkinter的grid布局中合并单元格
rowspan 合并多行,比如:Label(root,text="table",width=10,height=2,),grid(row=0,column=0,rowspan=2 ...
- 第四章 PCA降维
目录 1. PCA降维 PCA:主成分分析(Principe conponents Analysis) 2. 维度的概念 一般认为时间的一维,而空间的维度,众说纷纭.霍金认为空间是10维的. 3. 为 ...
- Java java.lang.ExceptionInInitializerError 错误解决方案
引起 java.lang.ExceptionInInitializerError 错误的原因是:在类的初始化时,出错.也就是说,在加载类时,执行static的属性.方法块时,出错了. 比如 publi ...
- ajex 相关参数
1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如 ...
- 全球各大邮件SMTP服务限制
常用免费SMTP服务的发送限制,转贴 GMail 免费邮箱 http://gmail.google.comSMTP 服务器:smtp.gmail.com策略:发送延时 0,每天发送量限制 50(GMa ...
- Apache Oltu 实现 OAuth2.0 服务端【授权码模式(Authorization Code)】
要实现OAuth服务端,就得先理解客户端的调用流程,服务提供商实现可能也有些区别,实现OAuth服务端的方式很多,具体可能看 http://oauth.net/code/ 各语言的实现有(我使用了Ap ...
- 线性回归浅谈(Linear Regression)
在现实生活中普遍存在着变量之间的关系,有确定的和非确定的.确定关系指的是变量之间可以使用函数关系式表示,还有一种是属于非确定的(相关),比如人的身高和体重,一样的身高体重是不一样的. 线性 ...