【问题标题】:Map rotation after compass clickd指南针点击后地图旋转
【发布时间】:2014-12-04 13:22:19
【问题描述】:

我有一个地图 API V2 片段。 并启用了指南针。 两指旋转地图后,可以点击指南针重置地图旋转。 指南针点击后如何计算旋转角度?

【问题讨论】:

  • 你能投票给答案吗?

标签: android google-maps map android-mapview gesture-recognition


【解决方案1】:

使用GoogleMap#getCameraPosition().bearing

【讨论】:

    【解决方案2】:

    使用传感器获取旋转角度

    private float[] mapGravity;
    private float[] mapMagnetic;
    
    private float getmapDirection()
    {
    
        float[] maptemp = new float[9];
        float[] mapR = new float[9];
        //Load rotation matrix into mapR
        SensorManager.getRotationMatrix(temp, null,
                mapGravity, mapMagnetic);
    
    
        SensorManager.remapCoordinateSystem(map_temp,
                SensorManager.AXIS_X,
                SensorManager.AXIS_Z, mapR);
    
        //Return the orientation values
        float[] values = new float[3];
        SensorManager.getOrientation(mapR, values);
    
        //Converting  to degrees
        for (int i=0; i < values.length; i++) {
            Double degrees = (values[i] * 180) / Math.PI;
            values[i] = degrees.floatValue();
        }
    
        return values[0];
    
    }
    
    @Override
    public void onSensorChanged(SensorEvent event) {
        switch(event.sensor.getType()) {
    
        case Sensor.TYPE_ACCELEROMETER:
            mapGravity = event.values.clone();
            break;
        case Sensor.TYPE_MAGNETIC_FIELD:
            mapMagnetic = event.values.clone();
            break;
        default:
            return;
        }
        if(mapGravity != null && mapMagnetic != null) {
            getDirection();
        }
      }
    

    【讨论】:

    • 我在旋转手机时使用传感器进行旋转。但是当指南针被按下时它不使用传感器,它会旋转地图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    相关资源
    最近更新 更多