相关疑难解决方法(0)

在Android中计算罗盘方位/前往位置

我想在谷歌地图视图上的我的位置显示一个箭头,显示我相对于目的地位置(而不是北方)的方向.

a)我使用磁力计和加速度计的传感器值计算了北方.我知道这是正确的,因为它与谷歌地图视图中使用的指南针对齐.

b)我使用myLocation.bearingTo(destLocation)计算了从我的位置到目的地位置的初始方位;

我错过了最后一步; 从这两个值(a和b)我用什么公式来得出手机相对于目的地位置的方向?

感谢任何有关心灵的帮助!

android location bearing heading compass-geolocation

54
推荐指数
3
解决办法
11万
查看次数

如何在Android上从方位角获取指南针方向

我必须显示用户指向Android设备的方向.

我正在使用Sensor.TYPE_ACCELEROMETER,Sensor.TYPE_MAGNETIC_FIELD以获得方位角,俯仰,滚动.但我能够弄清楚如何从这里获得方向(北,南,东,西,......).

请帮忙

谢谢

android sensor azimuth android-sensors

6
推荐指数
1
解决办法
1万
查看次数

无论屏幕方向如何,如何获得正确的方位(磁方向)?

无论当前的屏幕方向(横向或纵向),我都希望获得当前的磁性方向.

我找到了这个例子,但它不是独立的方向,对吧?而也帮不了我.我也读过http://android-developers.blogspot.de/2010/09/one-screen-turn-deserves-another.html.

这是我目前采用的方法,我不想使用(短):

mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);

private SensorEventListener sensorEventListener = new SensorEventListener() {

    public void onSensorChanged(SensorEvent event) {

        /* Get measured value */
        float current_measured_bearing = (float) event.values[0];

        /* Compensate device orientation */
        switch (((WindowManager) getSystemService(WINDOW_SERVICE))
                .getDefaultDisplay().getRotation()) {
        case Surface.ROTATION_90:
            current_measured_bearing = current_measured_bearing + 90f;
            break;
        case Surface.ROTATION_180:
            current_measured_bearing = current_measured_bearing - 180f;
            break;
        case Surface.ROTATION_270:
            current_measured_bearing = current_measured_bearing - 90f;
            break;
        }
Run Code Online (Sandbox Code Playgroud)

但最后一部分肯定是错的!getRotationMatrix()在这种情况下,如何正确使用更新的方法?(方向独立)或者我只需要event.values[]根据旋转矩阵使用数组的其他值?或者我需要'重新映射坐标'?那么,实现这一目标的正确方法是什么?

我正在为具有360°屏幕旋转和API Level 11+的设备开发.

我知道这些问题经常被问到,但我不能将他们的答案转移到我的问题上.

java android bearing digital-compass android-sensors

3
推荐指数
1
解决办法
7777
查看次数