Tag: 核心位置

如何禁用任何注册了-startMonitoringForRegion的CLRegion对象?

我正在使用NavigationController来显示用户可用的地理围栏列表。 在顶部有一个全局开关,我想用来禁用CoreLocation -startMonitoringForRegion注册的所有防护。 我的篱笆似乎很好,并且大部分都在工作,但是无论我个别禁用篱笆多less次,我仍然会看到紫色的位置箭头,表示系统仍在监视我的位置和/或围栏。 当我单独禁用我的篱笆时,这就是我正在做的事情。 CLLocationCoordinate2D coord; coord.latitude = [[settingsData valueForKey:@"latitude"] doubleValue]; coord.longitude = [[settingsData valueForKey:@"longitude"] doubleValue]; CLLocationDistance radius = [[settingsData valueForKey:@"radius"] intValue]; CLRegion *region = [[CLRegion alloc] initCircularRegionWithCenter:coord radius:radius identifier:[settingsData valueForKey:@"name"]]; // remove this fence from system monitoring [locationManager stopMonitoringForRegion:region]; [region release]; 我已经浏览了苹果关于CoreLocation的所有文档以及这些方法的使用,而且我已经走到了尽头。 我试过调用[locationManager monitoredRegions]; 但它只返回活动的栅栏,只有当我有我的细节视图加载。 我不能在我的程序中调用任何其他地方,并让它返回我的任何围栏,即使我知道他们应该积极。 如果任何人有任何build议去下一个,我都耳朵。

从代码打开地图应用程序 – 在哪里/如何find“当前位置”?

我正在打开地图应用程序,以显示从用户的当前位置到目标坐标的方向,从我的代码。 我正在使用下面的代码来打开地图应用程序。 我按下button时调用此代码。 getCurrentLocation是返回最近更新的位置的方法。 – (void)showDirectionsToHere { CLLocationCoordinate2D currentLocation = [self getCurrentLocation]; // LINE 1 NSString* url = [NSString stringWithFormat: @"http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f", currentLocation.latitude, currentLocation.longitude, destCoordinate.latitude, destCoordinate.longitude]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]]; } 这里LINE 1中的 [self getCurrentLocation]使用CLLocationManager来确定当前位置并返回值。 注意 :我还没有在LINE1中实现代码。 我刚刚计划这样做。 我的问题是: 这是在地图应用程序被调用时计算当前位置的好习惯吗? 在openURL被调用之前, [self getCurrentLocation ]会返回当前位置? 在打开地图应用程序之前,我必须确定当前位置吗? 我对这些事情有点困惑。 请引导我。 谢谢。

模拟iPhone模拟器上的位置更新

我想让用户通过GUI在iPhone模拟器上设置GPS信息。 但我不确定如何实现这一点 – 似乎这个名为iSimulate的工具通过安装自己的SDK来做到这一点。 但我无法弄清楚它们是如何“覆盖”/“破解”模拟器的。 谢谢!

在iOS的背景中的烽火台

我理解监视和测距之间的差异,并且我明白iOS的局限性在于,在进入和退出区域时,只能在前台或后台进行信标定位( http://developer.radiusnetworks.com/2013 /11/13/ibeacon-monitoring-in-the-background-and-foreground.html )。 但我试图找出如何解决一个共同的情况。 如果我在百货公司安装了一堆信标,那么当一个人在这些信标范围内移动时,我该如何检测呢? 随着目前的工作方式,当用户进入商店( didEnterRegion ),应用程序将获得一个事件,因为所有信标的集合作为一个大的区域。 但是,没有办法知道用户正在商店的不同部分之间移动,除非信标被放置得足够远以便用户退出并再次进入该区域,这可能是不实际的。 我想在后台放置信标的原因是,我可能需要知道用户在商店中的特定部分/产品上,以显示该部分的特定优惠/信息(通过通知),而不需要用户有应用程序打开。 在我看来,这对于商场和博物馆等是非常普遍的情景。我想知道其他开发者如何解决这个问题,或者是否有另一种方法来实现我想要的function。 我没有在这里包含代码片断,因为问题不在代码中,这只是一个概念问题。 如果需要澄清或代码,我也可以添加。 谢谢

如何跟踪用户在后台的位置?

我正在寻找一个开源的应用程序或库来跟踪用户在后台的位置。 现在我正在尝试使用CLLocation和后台任务来做,但是对于我的情况来说,准确性还不够。 你能解释一下,“移动”,“跑步者”,“endmondo”等应用程序如何创build我的路线? 我应该使用加速度计还是/和指南针来创buildCLLocation背景点之间的路线? 一些代码: //location manager init self.locationManager = [[CLLocationManager alloc] init]; self.locationManager.distanceFilter = kCLDistanceFilterNone; self.locationManager.desiredAccuracy = kCLLocationAccuracyBest; self.locationManager.delegate = self; #pragma mark – CLLocationManager Delegate – (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { if ([self isInBackground]) { if (self.locationUpdatedInBackground) { bgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler: ^{ [[UIApplication sharedApplication] endBackgroundTask:bgTask]; }]; self.locationUpdatedInBackground(newLocation); [self endBackgroundTask]; […]

IOS – 使用swift运行更新用户位置的后台任务

我是新用户在这里,但我已经使用了很多次stackoverflow:)…我是Android开发人员,但现在我正在使用Swift的iOS应用程序工作。 我是全新的使用xcode,也许我的问题很简单,很多…很好,我真的需要帮助。 我试图实现一个背景任务,每十分钟更新一次用户位置。 我需要得到经纬度和长时间的数据,然后将这些信息发送到API Web服务。 我一直在search背景文档 ,所有文档以及有关用户位置服务的所有文档。 有很多的信息,相当多的信息,但是,也许我很喜欢android信息,也有很多信息,但是很多简单的例子对我来说也是很容易的。 和以前的stackoverflow问题可能helpme很多。 我了解了很多概念,并且像文档说明一样configuration了我的info.plist,但是…我如何运行后台任务来获取用户位置? 我必须在哪里编写后台任务代码? 什么是开始? 我有一个项目与三个不同的viewcontrollers,我需要启动一个button的服务…非常感谢你,我真的需要了解所有这一切的起点。

如何在iOS中检查CLLocation的有效性

如何检查iOS中的CLLocation有效性? 其实这是我的情况, 我只是创build一个新的地图 mapView = [[MKMapView alloc] initWithFrame:CGRectMake(10, 30, 300, 380)]; mapView.showsUserLocation = YES; [mapView setDelegate:self]; 然后我想检查用户位置的有效性 mapView.userLocation.location 由于我在使用用户位置时遇到此错误 'NSInvalidArgumentException', reason: 'Invalid Coordinate -180.00000000, -180.00000000' 在此先感谢〜

与CLGeocoder重复地理编码后,kCLErrorDomain错误2

我在我的应用程序中有一个search栏,用户可以input一个地址,它会提供地理编码的结果。 结果更新为用户types,根据以下代码: – (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { … if (self.geocoder.geocoding) [self.geocoder cancelGeocode]; [self.geocoder geocodeAddressString:searchText completionHandler:^(NSArray *placemarks, NSError *error) { if (error != nil) { NSLog(@"ERROR during geocode: %@", error.description); return; } //update the view }]; } 这适用于用户inputsearch字段的前几个字符。 然而,在用户重复input更多的字符后,地理编码器开始给出以下错误(我知道这意味着networking有问题): ERROR during geocode: Error Domain=kCLErrorDomain Code=2 "The operation couldn't be completed. (kCLErrorDomain error 2.)" 在整个ViewController重新加载之前,地理编码器不能再次工作。 为什么会发生这种情况,我能做些什么来解决呢?

当应用程序处于后台时,向服务器发送经纬度

我经历了这么多的链接,甚至在我还没有find获得经纬度的合适解决scheme之后。 定期iOS背景位置更新 具有“位置”后台模式的iOS长时间运行后台计时器 我尝试了一些链接和论坛,但它只工作了3分钟,然后应用程序根本不更新用户的位置。 – (void)applicationDidEnterBackground:(UIApplication *)application { // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. // If your application supports background execution, this method is called instead of applicationWillTerminate: […]

如何知道iOS设备是否有GPS?

对于iPad或iPod touch,有没有办法找出设备是否有GPS? 额外的信用:如果iPad本身没有,但它连接到第三方的GPS单元? 我可以确定吗?