高度始终为 0。我无法获得海拔高度

Posted

技术标签:

【中文标题】高度始终为 0。我无法获得海拔高度【英文标题】:Altitude always 0. I cannot obtain the altitude above sea level 【发布时间】:2012-10-07 07:12:39 【问题描述】:

我得到的高度总是 0。我想在 android 中使用 GPS 获取海拔高度。

我的代码是:

public void onLocationChanged(Location location) 
    double lat = (double) (location.getLatitude());
    double lng = (double) (location.getLongitude());
    double alt = (double) (location.getAltitude());
    latitudine = (int) (lat * 1e6);
    longitudine = (int) (lng * 1e6);
    altitudine = (int) (alt * 1e6);

【问题讨论】:

【参考方案1】:

您是否检查过这是否是特定于设备的?你在模拟器中工作吗?

我会首先检查您的设备是否支持高度确定:

LocationManager locationManager; LocationProvider locationProvider;

/* Get LocationManager and LocationProvider for GPS */
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
locationProvider = locationManager.getProvider(LocationManager.GPS_PROVIDER);

/* Check if GPS LocationProvider supports altitude */
locationProvider.supportsAltitude();

如果您想知道某个位置是否设置了有效的海拔高度,请使用以下命令:

Location location;

/* Get current location from GPS */
location = Location(LocationManager.GPS_PROVIDER);

/* Check if the requested Location has its altitude set */
location.hasAltitude();

【讨论】:

我已经安装了一个高度计应用程序并且工作正常......所以我认为该设备支持高度计功能 但是你没有指定如何初始化“locationProvider”变量 对不起!完成了我上面的答案 @AndreaF 你有没有找到解决方案?我也有同样的问题,我的onLocationChanged 返回的高度比我安装在同一设备上的高度计应用程序高 0.0 或令人难以置信的高海拔(加上 80/90 米)。【参考方案2】:

您应该检查位置是否包含高度信息:在调用location.getAltitude()之前,只需调用location.hasAltitude()即可知道返回的位置是否包含此类信息。

根据您使用的位置提供商(网络或 GPS),它可能不支持高度确定。如果您有一个适用于海拔高度的应用程序,请尝试查找它正在使用哪个位置提供程序。

如果要检查特定位置提供程序是否支持高度,请先调用LocationManager.getProvider(SensorManager.GPS_PROVIDER) 以获取LocationProvider,然后调用方法locationProvider.supportsAltitude()

【讨论】:

以上是关于高度始终为 0。我无法获得海拔高度的主要内容,如果未能解决你的问题,请参考以下文章

似乎无法获得 AVPlayerLayer 的视频高度

jQ如何获得网页实际高度?

高度总是返回 0.00

c#获取位置的海拔高度

将应用设置为需要海拔高度?

如何在 iOS 上使用气压计获取更准确的海拔数据