3

高度は常に 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);
}
4

2 に答える 2

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();
于 2012-10-17T05:24:09.580 に答える
1

場所に高度情報が含まれているかどうかを確認する必要があります。location.getAltitude()電話location.hasAltitude()をかける前に、電話して、返された場所にこのタイプの情報が含まれているかどうかを確認してください。

使用するロケーションプロバイダー(ネットワークまたはGPS)によっては、高度の決定をサポートしていない場合があります。高度で動作するアプリケーションがある場合は、使用しているロケーションプロバイダーを見つけてください。

特定のロケーションプロバイダーが高度をサポートしているかどうかを確認する場合は、最初にを呼び出しLocationManager.getProvider(SensorManager.GPS_PROVIDER)て取得しLocationProvider、次にメソッドを呼び出しますlocationProvider.supportsAltitude()

于 2012-10-17T21:26:28.307 に答える