高度总是 returns 0.00
Altitude always returns 0.00
getAltitude() 方法的 return 值总是 returns 0.00。许多答案表明,这可能归因于不支持高度详细信息的提供商。我已经检查过了,它确实支持高度。
我想通过 GPS 坐标获取高度。感谢任何帮助。
我的代码可以在下面看到。
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 object
Location l = new Location("A");
l.setLatitude(40.796852);
l.setLongitude(-74.061340);
l.getAltitude();
//Returns 0.00
Log.i("Tag", String.valueOf(l.getAltitude()));
//returns True
Log.i("Tag", String.valueOf(locationProvider.supportsAltitude()));
Location
class 只是一个用于存储来自位置提供程序的位置更新结果的对象。
调用 setLatitude
和 setLongitude
不会神奇地为您填充该位置的高度。
据我所知,只有当 GPS 本身使用卫星作为参考点进行三角测量时,Location 才会有高度。当您从提供商那里获得位置时,它会计算高度,但是当您强制使用特定坐标时,您不会得到它。
要了解特定坐标(不同于当前 GPS 坐标)的高度,您应该从地图(例如:bing3d 或 openstreetmap)中查询该信息。
您正在手动组装一个 Location
对象。如果您希望 Location
对象为 return getAltitude()
的非零值,您需要调用 setAltitude()
.
如果您希望获取设备的当前位置,可能包括其海拔高度,您可以使用 LocationManager
,如 the documentation 中所述。
如果您想要获取地球表面在特定纬度和经度的海拔高度,Android 对此没有任何帮助。您需要找到具有这些详细信息的某种图书馆或 Web 服务。
getAltitude() 方法的 return 值总是 returns 0.00。许多答案表明,这可能归因于不支持高度详细信息的提供商。我已经检查过了,它确实支持高度。
我想通过 GPS 坐标获取高度。感谢任何帮助。
我的代码可以在下面看到。
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 object
Location l = new Location("A");
l.setLatitude(40.796852);
l.setLongitude(-74.061340);
l.getAltitude();
//Returns 0.00
Log.i("Tag", String.valueOf(l.getAltitude()));
//returns True
Log.i("Tag", String.valueOf(locationProvider.supportsAltitude()));
Location
class 只是一个用于存储来自位置提供程序的位置更新结果的对象。
调用 setLatitude
和 setLongitude
不会神奇地为您填充该位置的高度。
据我所知,只有当 GPS 本身使用卫星作为参考点进行三角测量时,Location 才会有高度。当您从提供商那里获得位置时,它会计算高度,但是当您强制使用特定坐标时,您不会得到它。
要了解特定坐标(不同于当前 GPS 坐标)的高度,您应该从地图(例如:bing3d 或 openstreetmap)中查询该信息。
您正在手动组装一个 Location
对象。如果您希望 Location
对象为 return getAltitude()
的非零值,您需要调用 setAltitude()
.
如果您希望获取设备的当前位置,可能包括其海拔高度,您可以使用 LocationManager
,如 the documentation 中所述。
如果您想要获取地球表面在特定纬度和经度的海拔高度,Android 对此没有任何帮助。您需要找到具有这些详细信息的某种图书馆或 Web 服务。