博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Staying on Track with Location Services--WWDC 2012 session 303
阅读量:6977 次
发布时间:2019-06-27

本文共 1595 字,大约阅读时间需要 5 分钟。

虽然说现在才学习这些,有点为时已晚,但是,对于提升自己能力来说,还是有很大帮助的。所以就这样吧,坚持下去,就是胜利。

以此为开篇。在iOS中追踪用户的位置轨迹。

 

首先,iOS的定位技术包括以下3种

• Cellular positioning• Wi-Fi positioning• Global Navigation Satellite Systems (GNSS)■ NavStar (GPS) ■ GLONASS

蜂窝定位,Wi-Fi定位,当然还有少不了的全球卫星定位系统(高端吧,一个是GPS,另一个也不知道是什么)!

看看最简单的获取用户当前位置信息的流程

 

- (void)setupLocation{    self.manager=[CLLocationManagernew];    self.manager.delegate=self;    self.manager.desiredAccuracy=kCLLocationAccuracyBestForNavigation; }- (void)startLocation{    [self.managerstartUpdatingLocation];}- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation*)newLocation fromLocation:(CLLocation*)oldLocation {    self.mapView.userPosition=newLocation; }

 

 

 

  • 另外一个功能:

经纬度与地址之间可以相互编码,例如:

800 Howard St. San Francisco, CA <-----> 37.78338, -122.403354 

 

  • 监测设备是否进入某个特定区域
CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(37.332426, -122.030404);CLRegion *region = [[CLRegion alloc] initCircularRegionWithCenter:coord radius:100.0 identifier:@”Apple Inc.”];

再调用startMonitoringForRegion:(CLRegion *)region,并设置好CLLocationManagerDelegate即可

在locationManager:didEnterRegion:和locationManager:didExitRegion:这两个回调方法即可实现监测功能。

 

iOS6开始,定位需要用户授权这是大家都很熟悉了,就不再详述了。

 

  • 一些苹果给的建议(原话是:Tips, Tricks, and Myths) 

1.使用地图可以更快地加载位置(获取用户位置)

2.关闭Wi-Fi以提高精准度

 

如何让程序在后台运行?这个可能可以展开一个篇幅来讲

UIBackgroundModes
location
Required background modes
Appregistersforlocationupdates

 

 

最后总结是,尽可能为用户省电,当获取完一次用户位置,判断精准度,然后就该停止update用户的位置,下次需要新位置的时候再startupdating。

 

 

转载于:https://www.cnblogs.com/nathanou/p/3707508.html

你可能感兴趣的文章
[译] JWT 与 Spring Cloud 微服务
查看>>
Android NDK开发之旅31 FFmpeg音频解码
查看>>
关于Android开源库分享平台,(GitClub)微信小程序的开发体验
查看>>
Thrift RPC 系列教程(4)——源码目录结构组织
查看>>
CentOS 部署 flask项目
查看>>
Kotlin学习笔记-基础语法
查看>>
Mybatis中Oracle和Mysql的Count字段问题
查看>>
[Java实现] 图片择优(选择最清楚的图片)
查看>>
【译】使用Kotlin和RxJava测试MVP架构的完整示例 - 第1部分
查看>>
前端项目如何管理
查看>>
优秀Java程序员应该知道的20个实用开源库
查看>>
极限编程 (Extreme Programming) - 迭代计划 (Iterative Planning)
查看>>
这些资源网站为什么能获得5万知乎大佬推荐,而我错失了什么吗?
查看>>
PHP面试常考内容之Memcache和Redis(2)
查看>>
GDB 调试 Mysql 实战(二)GDB 调试打印
查看>>
Work with Alexa :Echo匹配连接到Alexa
查看>>
vue-cli3环境变量与分环境打包
查看>>
PHPUnit实践三(构建模块化的测试单元)
查看>>
读书笔记:《图解HTTP》第三章 HTTP报文
查看>>
Computed property "XXX" was assigned to but it has no setter
查看>>