gpt4 book ai didi

iphone - 在 iPhone SDK 中获取我所在位置的海拔高度(距海平面的高度)

转载 作者:行者123 更新时间:2023-12-03 18:57:30 27 4
gpt4 key购买 nike

我正在尝试在我的应用程序中获取我所在位置的海拔高度。但每次我尝试 CLLocation 对象的 altitude 属性时,我都会得到 0.00 结果。

我用谷歌搜索我的查询,得到了类似的问题 herehere 。该链接表示,如果我通过 wifi 或手机信号塔访问 CLLocation,它将为空。即使我尝试将 desireAccuracy 设置为最佳,也无法确保该应用程序将使用 GPS。它还说,如果我在室内,我将无法访问 GPS。

在很多情况下,它不确定应用程序是否仅使用 GPS。我也想要一些从 wifi 或手机信号塔获取海拔高度的方法。为此,我在谷歌上进行了更多搜索,得到了 Google Earth API但我认为这仅适用于 Microsoft .net 技术。

现在根据这种情况,我认为对于解决方案,我可以在 Microsoft 技术中创建一个 Web 服务,并将我的位置传递到那里,我可以获得海拔高度作为响应,但我不想这样做。

任何人都可以建议我如何从 ios 获取我所在位置的海拔高度。有什么办法可以或者不可以吗?如果是,请引导我走向正确的方向。

提前致谢。

编辑1

我使用 CLLocationManager 来更新位置,当我获取位置时,我需要海拔高度。

编辑2

根据@fishinear的回答,我尝试了以下代码:

- (void)viewDidLoad
{
[super viewDidLoad];
manager = [[CLLocationManager alloc] init];
[manager setDesiredAccuracy:kCLLocationAccuracyBestForNavigation];
[manager setDistanceFilter:kCLDistanceFilterNone];
[manager setDelegate:self];
[manager startUpdatingLocation];
// Do any additional setup after loading the view, typically from a nib.
}

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
if ([newLocation verticalAccuracy] >= 0) {
NSLog(@"Altitude = %lf",newLocation.altitude);
}
NSLog(@"Vertical Accuracy : %lf",newLocation.verticalAccuracy);
}

verticalAccuracy 始终为 -1。即使应用程序运行了 30 分钟,它也没有改变。我在 3GS 上运行 ios 4.3.2。我在室内,所以我认为它甚至无法使用此代码访问 GPS。

最佳答案

回答您原来的问题:如果在配置 CLLocationManager 时将desiredAccuracy 设置为Best 或BestForNavigation,并将distanceFilter 设置为kCLDistanceFilterNone,则将始终使用GPS。然后,您还将在 CLLocation 事件中获得海拔高度值。

但是,GPS 需要一段时间才能“锁定”足够的卫星来报告高度。在此期间,它将报告没有高度值的 CLLocation 事件。因此,您应该忽略前几个事件,直到 VerticalAccuracy 值对您来说足够好。另外,请检查时间戳,因为有时第一个 CLLocation 事件是旧事件。

关于iphone - 在 iPhone SDK 中获取我所在位置的海拔高度(距海平面的高度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10630664/

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