IngeoSDK:对CoreLocation的扩展和封装

概述

IngeoSDK对CoreLocation进行了扩展和封装,为iOS(Swift以及Objective-C)提供了高效的位置管理。通过使用用户的运动状态、行为、速度和所在位置,运用特有的算法,动态持续调整CoreLocation的轨迹配置参数。从而实现实时优化精度以及最小电量消耗的效果。

不管App或者服务器处于前端后端甚至没有网络的状态下都能接收到最近的位置信息。当然我们已经帮你过滤掉了差别很大的位置样本。电池消耗每小时仅需2%左右,支持iOS7.0以上版本的iPhone,iPodTouch,iPad。
http://ingeo.io/sdk/ idk详情

下载文件或者克隆这个仓库

解压用Xcode打开Samples/Swift-Sample01中的工程文件

在ViewController.swift的初始化方法中编辑输入你的API key

swift:
<pre>IGLocationManager.initWithDelegate(self, secretAPIKey: "APIKEYGOESHERE")</pre>
没有API key?点击这里http://admin.ingeo.io/signup.php免费注册获得
现在只要在iOS模拟器或者真机运行该项目,走在旧金山的街头(使用了一个用于记录的GPX文件),并观察debug控制台的输出
使用CocoaPods安装
在Pod file中添加 pod 'IngeoSDK'

开启定位服务

1.Xcode中,target settings -> ‘Capabilities’ -> ‘Background Modes’ 打开 ‘Location updates’

2.在app的info.plist中添加一个String格式的key—NSLocationAlwaysUsageDescription(留空值)

使用
引入 import IngeoSDK
设置代理
<pre>class ViewController: UIViewController, IGLocationManagerDelegate {</pre>
初始化
<pre>IGLocationManager.initWithDelegate(self, secretAPIKey: "APIKEYGOESHERE")</pre>

开启定位监视器
<pre>IGLocationManager.startUpdatingLocation()</pre>

实现IGLocationManagerDelegate代理方法
swift
<pre>func igLocationManager(manager: IGLocationManager!, didUpdateLocation igLocation: IGLocation!) {
print("didUpdateLocation: (igLocation.description)")
}

func igLocationManager(manager: IGLocationManager!, didDetectMotionState motionState: IGMotionState) {
print("didDetectMotionState: (IGLocation.stringForMotionState(motionState))")
}</pre>

Objective-C
<pre>- (void)igLocationManager:(IGLocationManager *)manager didUpdateLocation:(IGLocation *)igLocation {
NSLog(@"didUpdateLocation: %@", [igLocation description]);
}

  • (void)igLocationManager:(IGLocationManager *)manager didDetectMotionState:(IGMotionState)motionState {
    NSLog(@"didDetectMotionState: %@",[IGLocation stringForMotionState:motionState]);
    }</pre>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容