我的高度始终为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);
}
答案 0 :(得分:5)
您是否检查过这是否是设备特定的?你在模拟器中工作吗?
如果你的设备支持高度测定,我会先检查:
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();
答案 1 :(得分:1)
您应该检查该位置是否包含海拔高度信息:在致电location.getAltitude()
之前,只需致电location.hasAltitude()
以了解返回的地点是否包含此类信息。
根据您使用的位置提供商(NETWORK或GPS),它可能不支持高度确定。如果您有一个适用于海拔高度的应用程序,请尝试查找它正在使用的位置提供程序。
如果您想检查特定位置提供商是否支持海拔高度,请先致电LocationManager.getProvider(SensorManager.GPS_PROVIDER)
以获取LocationProvider
,然后调用方法locationProvider.supportsAltitude()
。