我正在尝试在我的应用程序中获取我的位置的海拔高度。但每次我尝试altitude
CLLocation
对象的属性,我得到0.00
作为结果。在iPhone SDK中获取我的位置的海拔高度(海拔高度)
我为我的查询搜索了一下,我收到了类似的问题here和here。这个链接是说,如果我使用wifi或手机信号塔访问CLLocation,它将为空。即使我试图设置desireAccuracy
最好,即使它不确定该应用程序将使用GPS。这也是说,如果我在室内,我将无法访问GPS。
我很多情况下它不确定应用程序将只使用GPS。我想要一些从wifi或手机塔获取高度的方法。为此,我搜索了更多,我得到Google Earth API,但我认为这仅适用于Microsoft .net技术。
现在根据这种情况,我认为对于一个解决方案,我可以在Microsoft技术中创建一个Web服务,并将我的位置传递到那里,我可以获得高度作为响应,但我不想这样做。
任何人都可以建议我如何从ios获取我的位置的高度。有没有方法可用?如果是,请在正确的方向导航我。
在此先感谢。
EDIT1
我用CLLocationManager
更新的位置,当我把我的位置,我需要的高度。
EDIT2
据@ 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。
我试过使用这个URL,并且我分别传递了x和y值'22.998851594142938'&'72.5317382812553173828125',响应是' -1.79769313486231E + 308 '。我对此有所了解?如何获得这个高度? –
谢谢。你编辑的答案帮助:) https://developers.google.com/maps/documentation/javascript/elevation这是我正在寻找的。 –