Tag: 核心位置

核心位置无法在viewDidLoad中获取数据

我写了一个简单的iOS应用程序,检索位置信息,然后使用该位置来请求雅虎天气。 问题是,即使我调用viewDidLoad中的核心位置,它不会立即给我的结果。 那为什么我不能得到位置信息? 如何获取viewDidLoad中的位置信息? 伪代码目前是这样的: – (void)viewDidLoad { [super viewDidLoad]; self.locManager = [[CLLocationManager alloc] init]; self.locManager.delegate = self; self.locManager.desiredAccuracy = kCLLocationAccuracyBest; self.locManager.distanceFilter = 100; [self.locManager startUpdatingLocation]; //won't get the current location right now, so the output will be null NSLog(@"Current Location Longitude: %@", self.longitudeString); NSLog(@"Current Location Latitude: %@", self.latitudeString); } -(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { […]

IOS中的区域监控问题

我正在开发4-5个月的地区监测,之前工作正常。 在一个星期前,当我们testingIOS 7.1设备上的代码时,我们发现了一个问题: 当检测到一个注册区域时,直到用户远离该区域移动10Km,否则永远不会再被检测到。如果用户永远不会跨过这个10Km的范围,那么将不会调用该区域的Enter / Exit事件。 如果用户远距离探测区域行进10公里,则会调用其Exit事件,当用户返回到注册区域附近时,Enter事件将仅被触发。 这是我的代码: – 我做了一个位置pipe理器的单身,并在位置pipe理器中初始化它: if (locationManager == nil) { locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; locationManager.distanceFilter = kCLDistanceFilterNone; locationManager.desiredAccuracy = kCLLocationAccuracyKilometer; if ([locationManager respondsToSelector:@selector(activityType)]) { [locationManager setActivityType:CLActivityTypeFitness]; } if ([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) { [locationManager requestAlwaysAuthorization]; } } 然后,我得到用户的当前位置,并将其发送到服务器,以获取附近的geofence区域,并注册他们进行监控如下: – (void)startRegionMonitoring:(NSArray*)regions { [self unregisterRegionMonitoring]; if ([Helper isValidForRegionMonitoring]) { [locationManager […]

在ios中获取纬度和经度的地址

我一直在为ios编程,我需要得到地址。 如何从json或其他格式的经纬度得到完整的地址? 我可以没有互联网连接吗? 感谢您的关注。

调用CLLocationManager stopUpdatingLocation后内部GPS天线是否立即停止工作?

这是我的情况。 在我的应用程序中不需要连续监视用户的位置,但我需要的位置尽可能准确。 所以我只是调用CLLocationManager startUpdatingLocation与kCLLocationAccuracyBestForNavigation设置为所需的准确性,并获得我想要的准确性(通过比较newLocation.horizo​​ntalAccuracy与预定义的值)的位置后,我想停止位置更新和撤销更新几秒钟后再次。 但是当我打电话给stopUpdatingLocation状态栏的位置图标大约10秒后消失,这是否意味着苹果已经考虑到这种情况,当用户调用stopUpdatingLocation它不closures天线一段时间,可能是因为把它们回来在能源方面有些贵,所以他们只是等了一段时间,才closures了天线。 或者可能只是简单的位置图标不会消失,但天线closures。 那么有人可以解释什么时候有人调用stopUpdatingLocation?

视图加载之前,位置不更新

我有一个variables“zipCode”,我试图更新到用户当前位置的视图加载在我的scrollView。 目前,当我退出并回到scrollView视图控制器时,它会更新到正确的位置。 此外,我应该实施全新安装授权更新的更改。 感谢您的帮助。 import UIKit import CoreLocation var zipCode = 90210 var location = [""] class ViewController: UIViewController, CLLocationManagerDelegate { let locationManager = CLLocationManager() @IBOutlet var scrollView: UIScrollView! override func viewDidLoad() { super.viewDidLoad() self.locationManager.delegate = self self.locationManager.desiredAccuracy = kCLLocationAccuracyBest self.locationManager.requestWhenInUseAuthorization() self.locationManager.startUpdatingLocation() } ////Current Location func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { CLGeocoder().reverseGeocodeLocation(manager.location!, completionHandler: { […]

当closures视图启动位置服务通知错误发生

我创build了一个使用这个项目的小应用程序,因为它的核心是: https://github.com/dsdavids/TTLocationHandler 它一直工作得很好,直到我已经移动从应用程序中的另一个视图移动位置服务。 什么应用程序正在做:当它启动时,您可以点击开始button和( 在模拟器位置必须启用 )在移动的地图上的移动路线显示。 当我在第二个视图中移动开始行动时,问题出现了。 在第二个视图中,我只想启动位置服务并closures它。 问题是,当我开始定位在第二个视图我得到错误(应用程序崩溃EXC_BAD )在这里: TTLocationHandler … dispatch_async(dispatch_get_main_queue(), ^{ if (OUTPUT_LOGS) NSLog(@"Sending notification out"); NSNotification *aNotification = [NSNotification notificationWithName:LocationHandlerDidUpdateLocation object:[locationToSave copy]]; [[NSNotificationCenter defaultCenter] postNotification:aNotification]; }); … 我认为这是因为我closures了第二个视图(查看启动服务), TTLocationHandler仍然试图发送一些东西。 为了更好地理解我的问题,我已经在git hub上添加了项目: https://github.com/1110/common-location-features 您可以下载它,并从第二个视图运行启动服务,当closures该视图的应用程序将在几秒钟内崩溃。 如果有人能find一点时间告诉我我在做什么错,我会非常感激,因为我确信这是一件小事,我可能做错了。 整个代码在SecondViewController.m 谢谢

在使用UIBackgroundModes = location的同时定期唤醒应用程序

我正在开发一个导航应用程序,它使用UIBackgroundModes=location设置,并通过didUpdateToLocation接收CLLocationManager更新。 这工作正常。 问题是,位置更新之间的间隔很难预测,我需要确保应用程序每隔几秒钟调用一次,即使位置没有明显变化,也可以执行一些其他(微小的)工作量。 我可以这样做吗? 我可以这样做吗? 我该怎么做? 我发现了一篇博客文章 ,但我不确定这是否是真正的方法。

如何在iOS应用程序中解决核心位置逻辑

我在我的应用中遇到core location逻辑问题。 以下代码位于rootviewcontroller 。 它应该testing,看看,如果用户已经允许的GPS /位置服务的应用程序开启或closures ,然后作出决定,并移动到两个view controllers 。 应用程序启动时应运行此testing。 此外,如果用户进入device Settings并更改Privacy > Location Services > App Name > ON/OFF并重新启动应用程序,那么它应该再次通过该过程。 这是我迄今为止的代码: #import <CoreLocation/CoreLocation.h> -(void) viewWillAppear:(BOOL)animated { CLController = [[CoreLocationController alloc] init]; CLController.delegate = self; [CLController.locMgr startUpdatingLocation]; #ifdef DEBUG NSLog(@"RootViewController"); #endif spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; spinner.center = self.view.center; spinner.hidesWhenStopped = YES; [self.view addSubview:spinner]; [spinner startAnimating]; […]

从后台重新启动位置更新

我正在开发一个监视用户位置的应用程序。 我打电话startUpdatingLocation()我可以把应用程序在后台。 它不断更新位置。 那效果很好。 我的问题是:我可以重新启动从背景 didExitRegion调用连续位置更新? 现在,如果我只是再次调用startUpdatingLocation() ,应用程序10秒后被杀死。 func locationManager(_ manager: CLLocationManager, didExitRegion region: CLRegion) { locationManager.startUpdatingLocation() } 所以这些步骤将是: 我要求位置经理startUpdatingLocation() 。 用户将该应用置于后台,同时不断接收位置更新。 用户停一会儿(例如咖啡),所以我要求位置pipe理员放下geofence和stopUpdatingLocation() 。 用户继续他的驱动器,所以当他离开地理围栏时,我想请求位置pipe理器再次startUpdatingLocation() 。

SceneKit视图呈现向后

我正在尝试我的第一个SceneKit应用程序。 我的目标是模拟地球表面的视图,并能够将设备的摄像机指向任意方向,并在摄像机视图上叠加信息。 首先,我只是试图让SceneKit相机视图匹配设备的方向。 为了validation它是否正常工作,我在特定的经度和纬度坐标处添加了一堆球体。 除了一个重要的问题,一切都在起作用。 该视图从应该显示的内容镜像左/右(东/西)。 我花了几个小时尝试调整相机的不同排列。 以下是我的完整testing应用程序视图控制器 我无法弄清楚正确的变化组合,让场景正确渲染。 北极的球体是正确的。 按我自己目前的经度从北极延伸到赤道的球体线如预期的那样出现在头顶上。 这是领域的其他线是不正确的。 它们从东西向镜像,就像镜子在我自己的经度上一样。 如果你想testing这个代码,使用SceneKit创build一个新的游戏项目。 将模板GameViewController.swiftreplace为下面的文件。 您还需要在Info.plist中添加“隐私 – 使用说明中的位置”键。 我也build议调整for lon in …行中的for lon in …以便数字以您自己的经度开始或结束。 然后您可以看到球体是否正在显示的正确部分上绘制。 这可能还需要对UIColor(hue: CGFloat(lon + 104) * 2 / 255.0颜色UIColor(hue: CGFloat(lon + 104) * 2 / 255.0 。 import UIKit import QuartzCore import SceneKit import CoreLocation import CoreMotion let EARTH_RADIUS = […]