我始终获得高度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()
。