簡體   English   中英

Google地圖上沒有位置具有海拔高度(根據location.hasAltitude())

[英]No location on Google Maps has altitude (according to location.hasAltitude())

我正在創建一個基本的遠足者手表ap p,向用戶提供他/她的位置信息,例如(經度,緯度,高度等)。

但是,日志中顯示的海拔高度始終為0.0 (盡管在擴展控件中為海拔高度分配了一些非零值)。

根據,

locationProvider.supportsAltitude()
location.hasAltitude()

設備支持高度,但是沒有位置具有任何高度。

甚至珠穆朗瑪峰(根據坐標)也沒有“海拔”高度。

我正在獲取其他位置詳細信息,例如緯度,經度

我能做什么?

對於更便宜的設備,GPS高度的誤碼率可能很高。

您還可以選擇使用壓力傳感器來嘗試SensorManager來估計高度,這可能會有一些誤差。

SensorManager.getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE,pressure)

像這樣:

public class MainActivity extends AppCompatActivity {

  private SensorManager sensorManager;
  private Sensor pressureSensor;
  private SensorEventListener sensorEventListener = new SensorEventListener() {

    @Override
    public void onSensorChanged(SensorEvent sensorEvent) {
      float[] values = sensorEvent.values;
      flat altitude = SensorManager.getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, values[0]);

    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int i) {
    }
  };

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
    pressureSensor = sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE);
  }

  @Override
  protected void onResume() {
    super.onResume();
    sensorManager.registerListener(sensorEventListener, pressureSensor, SensorManager.SENSOR_DELAY_UI);
  }

  @Override
  protected void onPause() {
    super.onPause();
    sensorManager.unregisterListener(sensorEventListener);
  }
}

資料來源: Android文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM