高度总是0.我无法获得高于海平面的高度



我始终获得高度0。我想使用GPS在Android中获得高于海拔的海拔。

我的代码是:

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);
}

您是否检查了是否特定于设备?您在模拟器中工作吗?

我将首先检查,如果您的设备支持以下高度确定:

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();

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

根据您使用的位置提供商(网络或GPS),它可能不支持高度确定。如果您的应用程序可与高度合作,请尝试查找其正在使用的位置提供商。

如果要检查特定位置提供商是否支持高度,请先致电LocationManager.getProvider(SensorManager.GPS_PROVIDER)获取LocationProvider,然后致电locationProvider.supportsAltitude()

最新更新