返回

上海达内教育

关于iphone定位的基本知识

软件测试学习网更新时间:2021-07-15 浏览:205

1.Getting the User’s Current Location

获得客户所在位置。

获得部位的方法有三种:GPS, cell tower triangulation(蜂窝状网站), 和 Wi-Fi Positioning Service (WPS).在其中GPS是最精准的精准定位方法,可是在**代iphone上沒有。GPS是根据载入许多通讯卫星微波加热数据信号来明确所在位置的。蜂窝状网站根据 iphone周边的网站推算出来的,在蜂窝状网站聚集的地区应用这类技术性能够做到一个精确的值,例如在大城市但在蜂窝状网站不聚集的地区实际效果就没那麼好啦。最终 一个WPS应用的是联接到Wi-Fi互联网的IP地址来位置与方向,这将会出现很大的偏差。这三种方法都是会耗费很多的电。怎样才能即完成精准定位作用又节电呢?下边的方式 就可以处理:当应用Core Location时,能够挑选精准度,慎重的挑选你所*须的精确度,能够协助你省许多电。Core Location应用的技术性掩藏在应用软件中。大家不用挑选应用GPS、蜂窝状网站技术性或是WPS,大家只需告知它大家*须的精确度它会自身决策选哪些技术性 来达到大家的要求。

2.The Location Manager

Core Location的插口是非常容易应用的。关键采用的类是CLLocationManager,便是一般 说的Location Manager。为了更好地应用Core Location大家*须建立Location Manager的实体线:

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

这 样大家就建立了 Location Manager的实体线,可是大家都还没逐渐精准定位。大家*须分派一个代理商给Location Manager。当精准定位信息内容更改时Location Manager将启用代理商方式 。精准定位的全过程要花一段时间均值几秒。代理商方式 务必遵照CLLocationManagerDelegate协议书。

3.Setting the Desired Accuracy

设置代理后,你还需要设定*须的精确度。如同大家刚说的精准度越越高越耗电量。假如你仅仅如果应用软件明确是哪个*或者哪一个州那麼就不必设定很高的精准度。记牢一点有时你并不可以获得你需要的精准度。

下边说一个设置代理和设定精准度的事例:

locationManager.delegate = self;

locationManager.desiredAccuracy = kCLLocationAccuracyBest;

精准度应用的是一个double种类的变量定义。企业是米,因此假如你设定desiredAccuracy=10那麼精准度便是10米,这就告知 Location Manager尽量做到10米的精准度。还能够设定为别的变量定义:

[cpp]

extern const CLLocationAccuracy kCLLocationAccuracyBestForNavigation ;

extern const CLLocationAccuracy kCLLocationAccuracyBest;

extern const CLLocationAccuracy kCLLocationAccuracyNearestTenMeters;

extern const CLLocationAccuracy kCLLocationAccuracyHundredMeters;

extern const CLLocationAccuracy kCLLocationAccuracyKilometer;

extern const CLLocationAccuracy kCLLocationAccuracyThreeKilometers;4.Setting the Distance Filter

4.Setting the Distance Filter

默认设置状况是那样的,每每部位更改时Location Manager就启用一次代理商。

根据设定distance filter能够完成当部位更改超过一定范畴时Location Manager才启用相对应的代理商方式 。那样能够做到节电的目地。

比如:locationManager.distanceFilter = 1000.0f;

假如设定初始值:

locationManager.distanceFilter = kCLDistanceFilterNone;

5.Starting the Location Manager

逐渐精准定位

如果你转备好为精准定位耗费充电电池时我们可以启用

[locationManager startUpdatingLocation];

来告知 Location Manager逐渐精准定位

6.Using the Location Manager Wisely

假如你只*须明确所在位置而不用进一步精准定位,当Location Manager查看到所在位置时*须通告代理商终止精准定位。

终止方式 : [locationManager stopUpdatingLocation];

7.The Location Manager Delegate

Location Manager务必遵循CLLocationManagerDelegate协议书,CLLocationManagerDelegate协议书界定了2个方 法,而且这两个方式 全是可选择的。在其中一个方式 是当明确所在位置或者位置信息更改时启用。另一个方式 是当碰到错误报告时启用

8.Getting Location Updates

当Location Manager想通告它的代理商所在位置时,它会启用

locationManager:didUpdateToLocation:fromLocation: 方式 。

这一方式 有3个主要参数**个主要参数Location Manager。第二个主要参数是一个CLLocation目标用于明确所在位置,第三个是CLLocation 目标用于明确近期一次升级的部位。该方式 启用时,此前的location目标会被置空。

9.Getting Latitude and Longitude Using CLLocation

地理坐标

位置信息是根据应用CLLocation类的案例从Location Manager那边获得的。这一类有5各特性。latitude和longitude被封裝在coordinate特性中。

获得方法以下:

CLLocationDegrees latitude = theLocation.coordinate.latitude;

CLLocationDegrees longitude = theLocation.coordinate.longitude;

CLLocation目标还能够对你说精准度。

horizontalAccuracy特性叙述调节的定位点。horizontalAccuracy值越大越不精准。

CLLocation 还有一个叫altitude的特性用于表明海拔高度

CLLocationDistance altitude = theLocation.altitude;

每一个CLLocation目标都是有一个叫verticalAccuracy的特性来分辨精准度。海拔高度标值很有可能会出现verticalAccuracy尺寸的偏差,当verticalAccuracy为负数时,那就是Core Location在通告你不能获得平均海拔。

CLLocation的另一个特性timestamp用于告知Location Manager是什么情况下精准定位的。CLLocation还有一个实例方法来对你说的2个CLLocation目标中间的间距。这一方式 叫:getDistanceFrom:

它是那样工作中的:

CLLocationDistance distance = [fromLocation getDistanceFrom:toLocation];

回到2个时间范围内的间距,有时它不是考虑到海拔高度的,因此要自身测算间距。

10.Error Notifications

假如Core Location不可以指定你当今的部位,它将启用CLLocation的第二个代理商方式 :locationManager:didFailWithError:,最普遍的是客户撤销应用精准定位信息内容。

相关资讯

iOS让键盘消失的技巧
2021-07-15 308
聚焦点在UITextField或UITextView中的情况下,电脑键盘会发生,想点一下情况就要电脑键盘消退。它是在手执机器设备上服合客户的实际操作习惯性。自然方式 有很多,在这儿我讲一个较为好用的方式...
Android开发之--脚本编程
2021-10-06 238
免费下载和安裝 Scripting Layer for Android (SL4A)Scripting Layer for Android (SL4A) 是一个开源软件,总体目标是为android系统软件给予开发语言的适用...
参加云计算培训就业前景怎么样
2021-10-20 225
云技术不但不容易变弱其发展趋势优点,反过来,在5G技术性的推动下,云计算技术发展前景也会变的愈来愈丰厚。下面,就要达内教育教师为我们深入分析一下,将来云计算技术的发展趋向...
软件测试工程师35岁以后怎么办
2021-06-17 221
35岁干不动,都只是借口而已。能干的,依然能够很好的在这个行业发展,干不了的,注定会被一浪比一浪高的后浪,拍死在沙滩上。我...
软件测试工程师的职业发展方向有哪些
2021-06-15 214
在我们开始尝试为大家描述软件测试工作的多种可能性之前,先来看看在现在所知最近代的开发模式中,测试人员还会继续存在吗?很多...
Android私有文件夹文件的写入与读取
2021-07-15 213
*给大伙儿详细介绍应用文档怎样对数据信息开展储存,Activity给予了openFileOutput()方式 能够用以把数据信息輸出到文档中...
女生适合做软件测试工程师吗
2021-07-27 209
简单来说,做软件测试对性别是没有要求的。这个行业里的男女比例很均衡,是一个越久越吃香的行业,想做好的话,与其他行业一样,...
关于iphone定位的基本知识
2021-07-15 205
Getting the User’s Current Location获得客户所在位置。获得部位的方法有三种:GPS, cell tower triangulation(蜂窝状网站),...

相关课程

栏目导航