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

Kap*_*isa 5 iphone gps cllocation altitude

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

我用谷歌搜索我的查询,我在这里这里得到了一个类似的问题。此链接表示,如果我使用 wifi 或蜂窝塔访问 CLLocation,它将为空。即使我尝试设置desireAccuracy为最佳,也不能确保该应用程序将使用 GPS。它还说如果我在室内,我将无法访问 GPS。

在很多情况下,它不确定该应用程序将仅使用 GPS。我也想要一些从 wifi 或手机信号塔获取 Altitude 的方法。为此,我搜索了更多,并获得了Google Earth API,但我认为这仅适用于 Microsoft .net 技术。

现在根据这种情况,我认为对于一个解决方案,我可以在 Microsoft Technology 中创建一个 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);
}
Run Code Online (Sandbox Code Playgroud)

verticalAccuracy总是-1。即使在运行应用程序持续 30 分钟后,它也不会改变。我在我的 3GS 上运行 ios 4.3.2。我在室内,所以我认为它甚至没有使用此代码访问 GPS。

nvu*_*ono 2

请参阅Android - 通过经度和纬度获取海拔高度?有一个 Android 解决方案,但它很容易适应 iOS。

答案是使用USGS 海拔查询 Web 服务

从最上面的答案来看,基本上您只需将 HTML Web 请求发送到:

http://gisdata.usgs.gov/xmlwebservices2/elevation_service.asmx/getElevation?X_Value=" + 
             String.valueOf(longitude)   + 
             "&Y_Value=" + String.valueOf(latitude)             
             + "&Elevation_Units=METERS&Source_Layer=-1&Elevation_Only=true"; 
Run Code Online (Sandbox Code Playgroud)

<double>...</double>然后你可以从标签之间解析出响应文本

编辑: 看来您可能正在尝试在美国以外的地方提升海拔。

Google Maps API 确实提供了海拔服务和文档,网址为https://developers.google.com/maps/documentation/javascript/elevation

  • 谢谢。您编辑的答案有帮助:) https://developers.google.com/maps/documentation/javascript/elevation 这是我正在寻找的答案。 (2认同)