gpt4 book ai didi

ios - 如何使用 CoreLocation 进行用户启动的精确定位?

转载 作者:行者123 更新时间:2023-11-29 03:23:25 25 4
gpt4 key购买 nike

这是我的代码(实现类声明了 CLCoreLocationManagerDelegate 协议(protocol)):

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
NSLog(@"locations %@", locations);
}

- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {
NSLog(@"auth status: %u", status);
}

- (void)noteLocation {
if ([CLLocationManager locationServicesEnabled] == NO)
{
NSLog(@"rejected");
return;
};
CLLocationManager* manager = [CLLocationManager new];
manager.delegate = self;
manager.pausesLocationUpdatesAutomatically = NO;
manager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
[manager startUpdatingLocation];

}

运行 noteLocation 方法,我的应用程序会短暂打开 “thisApp” Would Like to Use your Current Location 提示。但它立即关闭。无论哪种方式我都无法回答。并且委托(delegate)方法永远不会触发。

我只是想走到这一步。但还有一个更大的架构问题也很重要。我的应用为其编目的项目提供注释当前位置功能,因此用户可以将他的当前位置标记为该项目的位置。除非他们选择该选项,否则我不需要(或不想)浪费电池来运行 GPS。但是当他们这样做时,我想要尽可能精确的值(value)。我的想法是以最高精度运行它,等待几次更新(也许确保该值正在稳定),然后记录该最终值。有更好的方法吗?

更新

提示消失了,因为我需要将 LocationManager 实例存储在不会被垃圾收集的地方。

最佳答案

我发现您正在使用kCLLocationAccuracyBestForNavigation,它提供了最佳的准确性。除非您尝试获取运动中的用户或物体的当前位置,否则您不必等待太多位置更新。

CLLocation 包含两个属性 - horizo​​ntalAccuracyverticalAccuracy。您可以通过执行一些测试并显示这些属性的值来衡量程序的准确性。

关于ios - 如何使用 CoreLocation 进行用户启动的精确定位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20793780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com