Tag: 核心位置

蓝色横幅“您的应用正在使用您的位置”在退出我的应用后不显示

我的应用程序正在使用背景模式的核心位置,当应用程序处于后台模式,并定期发送GPS坐标,蓝色的横幅“您的应用程序正在使用您的位置”不显示(例如谷歌地图应用程序)。 任何想法,我可以错过?

检测用户是否进入或离开地区 – 地理编码

我从地理编码开始。 我有很多疑问。 我能够向前和反向地理编码(我猜,它不完美)。 而现在,我试图检测用户(设备)是否进入或离开一个地区。 为此,我拿起苹果的示例代码“ Regions ”。 该示例使用regionMonitoring 。 我已经在设备上试过了,但是效果不好。 我设置了一个半径25米的地区,当我离开这个地区(行走)时,什么都没有发生。 我的问题是:还有另外一个更好的方法来做这件事情,检测用户是否进入或离开区域,比regionMonitoring ? 有人可以帮我吗? 非常感谢。

locationManager:didEnterRegion和didExitRegion永远不会被调用:iBeacon

当使用信标(ios设备)进行testing时,我发现听者信标给出了一些意想不到的行为。 即使信标进入区域,locationManager:didEnterRegion方法也不会被调用。 但是locationManager:didRangeBeacons:inRegion:正在调用正确,并且在那里显示检测到的信标。 – (void)startListening{ self.locationManager = [[CLLocationManager alloc] init]; [self.locationManager setDelegate:self]; NSUUID *myProximityUUID = [[NSUUID alloc] initWithUUIDString:IDENTIFIER]; _beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:myProximityUUID identifier:kPFTransmitterIdentifier]; _beaconRegion.notifyEntryStateOnDisplay = YES; _beaconRegion.notifyOnEntry =YES; [self.locationManager startMonitoringForRegion:self.beaconRegion]; [self.locationManager requestStateForRegion:self.beaconRegion]; //[self.locationManager startRangingBeaconsInRegion:self.beaconRegion]; } 这是我写的代码。 当侦听器应用程序进入特定区域时,即使应用程序未运行,我也需要创build本地通知。

iOS强制地理位置以特定语言返回城市名称

我遇到了一个相当奇怪的情况,后端开发人员要求我强制执行地理定位返回的城市名称是使用特定的语言? 比如,不pipe哥本哈根语言是什么,它都会返回哥本哈根而不是哥本哈根。 我在网上找不到任何关于这个的东西。 您的帮助将不胜感激。 谢谢

iBeacon监视和后台测距

我花了几个月的时间来开发一个基于iBeacons的应用程序,我感到非常沮丧。 总的想法是,当检测到信标时,通知用户特定于该信标的信息。 该应用程序devise如下,所有iBeacons具有相同的UUID,主要决定build设(博物馆,商店…)和次要的具体产品(图片,鞋…)。 所以这个应用程序可以为多个客户端 当应用程序启动时,我开始使用我们的UUID对区域进行监视和测距。 当应用程序在前台,所有的作品完美。 但是在后台或暂停状态下,问题就开始了。 测距不允许在背景或暂停状态。 我知道,当您进入或退出信标区域时,应用程序将被启动到后台大约5秒钟。 你可以在这里做五秒钟的时间,之后iOS会暂停你的应用程序。 我用这里学到的技术在后台扩展了3分钟。 我也得到一个额外的callbacknotifyEntryStateOnDisplay = YES; 但是,这是不够的,如果客户进入一个地区的应用程序在后台或暂停状态,他将被通知。 在额外的3分钟内,如果测距检测到另一个iBeacon,他将被通知,但是当3分钟后台任务过期时,如果没有区域出口被触发,他将不会再收到任何通知。 在这种情况下是否没有真正的解决scheme? 我认为这是一个非常普遍的情况,我很惊讶没办法处理它。 编辑:我试图find一个解决scheme,通过监测两个地区的build议大卫杨在他的回应。 为了获得更多的进入/退出地区的事件。 我添加了我实现的代码来尝试监视两个区域。 但是我做了不正确的事情,并做了RangeBeacons:InRegion:callback是每10毫秒发射预计是每秒。 在AppDelegate.m ,我正在做didFinishLaunchingWithOptions:的以下内容didFinishLaunchingWithOptions: [self.locationManager startMonitoringForRegion:self.beaconRegion]; [self.locationManager stopRangingBeaconsInRegion:self.beaconRegion]; [self.locationManager startRangingBeaconsInRegion:self.beaconRegion]; [self.locationManager startMonitoringForRegion:self.beaconRegion2]; [self.locationManager stopRangingBeaconsInRegion:self.beaconRegion2]; [self.locationManager startRangingBeaconsInRegion:self.beaconRegion2]; 然后,在didRangeBeacons:InRegion: – (void) locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region{ if(beacons.count > 0){ [self.locationManager stopRangingBeaconsInRegion:region]; for (CLBeacon *beacon in beacons){ […]

当飞行模式打开时,CLLocationManager如何获取一个位置

我的应用程序使用CLLocationManager从设备获取位置更新。 我曾假设,当设备在飞行模式下,我不会得到位置更新。 但是我愿意。 我之所以这样做,是因为苹果说飞行模式closures了Wifi,手机,蓝牙和GPS。 请参阅: http : //support.apple.com/kb/ht1355 那么,我是如何用一个看起来合理的坐标获取位置更新呢?

如何计算CLLocationDistance的中心坐标

我想计算我的位置和一些注释之间的中心点。 到目前为止,我已经这样做了: CLLocation *myLoc = self.locMgr.location; MKPointAnnotation *middleAnnotation = [locationV.annotations objectAtIndex:locationV.annotations.count/2]; CLLocation *someStuiodLoc = [[CLLocation alloc] initWithLatitude:middleAnnotation.coordinate.latitude longitude:middleAnnotation.coordinate.longitude]; CLLocationDistance dist = [myLoc distanceFromLocation:someStuiodLoc]; 我如何计算“dist”的中心点/坐标?

使用模拟器testing自定义位置

我只是花了最后一个小时的时间search – 认为必须有一个答案 – 并没有find太多,所以我在这里问。 我试图让示例应用程序区域通过模拟器触发进入和/或退出区域更新。 我很熟悉使用Debug> Location> Custom Location来设置特定的经度和纬度,但似乎并没有太多的工作,虽然它似乎在LocateMe示例应用程序中工作。 在这一点上,我不知道这个问题是iOS模拟器的限制,还是示例应用程序处理区域检测的方式(我对iOS还是比较新的)。 我遇到了FTLocationSimulator但我想知道这是否会有所帮助(特别是因为它似乎模仿了通过模拟器设置自定义位置的能力)。 关于iOS模拟器设置自定义位置的能力,苹果公司的文档似乎也不多。

禁用allowBackgroundLocationUpdates(CLLocationManager)在启用后不起作用

我的应用程序与连续的后台位置更新。 当然,它有所有的权限和其他的东西 allowsBackgroundLocationUpdates = true 最初,我想在后台使用NSProcessInfoPowerStateDidChange通知对NSProcessInfoPowerStateDidChange更改做出反应 。 并禁用allowsBackgroundLocationUpdates 停止更新位置,而无需调用stopUpdatingLocation 。 但是,我收到通知和设置后发现 allowsBackgroundLocationUpdates = false 在后台应用程序正在进行工作。 所以我走得更远,并确定, 禁用 allowsBackgroundLocationUpdates即使在最初设置为true 前景 ,根本不工作。 应用程序继续在后台工作。 苹果关于此事的文件 你使用这个属性来启用和禁用基于你的应用行为的行为 从CLLocationManager类, allowsBackgroundLocationUpdates属性的描述 将UIBackgroundModes设置为包含Info.plist中的“位置”时,只要调用-startUpdatingLocation以在后台继续,就必须在运行时将此属性设置为YES。 将此属性重置为NO相当于从UIBackgroundMode值中省略“位置”。 显示我提到的行为的简单项目在GitHub上。 所以这个问题,这是财产的故意行为吗?

定位精度 – iOS

统计意图是什么,即使是在iOS上返回的“准确性”或“不确定性”的近似值? 例如,Android文档给出了其返回的准确度数字的解释,在这个意义上大约是一个标准偏差: 我们将准确度定义为68%置信度的半径。 换句话说,如果你绘制一个以该位置的经度和纬度为中心的圆,其半径等于精度,则真实位置在圆内的概率为68%。 在统计学上,假定位置误差是随机的,正态分布,所以68%置信圈代表一个标准偏差。 请注意,实际上,位置错误并不总是遵循这样一个简单的分布。 这个精度估计只涉及水平精度,并不表示方位精度,速度或高度,如果这些位置包含在这个位置。 我们的设置是,我们需要在iOS上以与Android相当的方式来处理iOS中返回的“准确性”或“不确定性”的值,以使我们能够构build具有相同function的应用程序。 iOS的准确性结果是否需要进行任何转换以获得与上述相同的解释? 具体来说,假设在两个具有相同GPS /位置硬件的设备的假设情况下,在相同的物理位置处,在同一时刻对具有相同参数的GPS地理定位的查询,Android之间最典型的关系返回值(1个标准偏差不确定度)和iOS值?