【问题标题】:Point arrow to direction the user is facing [closed]将箭头指向用户面对的方向[关闭]
【发布时间】:2013-01-14 17:03:42
【问题描述】:

在 Google 地图应用程序中,有一个蓝色小箭头指向用户所面对的方向。如何在我的应用程序中复制它?请提供示例代码。

【问题讨论】:

  • 你试过什么?指南针似乎很方便,但以前修复的方向似乎最好。

标签: android gps accelerometer android-sensors android-location


【解决方案1】:

我有一个应用程序,我必须在其中获取设备指向的方向。为了获取此值,您必须设置 SensorManager 和 SensorListener。这是启动它的基本代码。当然,您必须根据偏角(真北和磁北之间的差异)进行一些调整。

mySensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
List<Sensor> mySensors = mySensorManager.getSensorList(Sensor.TYPE_ORIENTATION);

private SensorEventListener mySensorEventListener = new SensorEventListener(){

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {

    }

    @Override
    public void onSensorChanged(SensorEvent event) {
        //device heading in degrees
        float azimuth = event.values[0];
    }
};

【讨论】:

  • 仅供参考,Sensor.TYPE_ORIENTATION 已被弃用。现在它应该使用其他传感器来获取方向。
【解决方案2】:

从当前 GPS 位置获取路线(有时称为航向)属性。

【讨论】:

  • 显然这在Android API中被称为轴承:developer.android.com/reference/android/location/…
  • @NotMe 确保您不要将罗盘方位(来自罗盘传感器)与 GPS(航向/航向)互换。我不知道Android API。 (但对于这个问题,罗盘方位也很合适,但 GPS 航向比罗盘更精确,速度更快。
最近更新 更多