0

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

+0

的角度,你可以投票了答案好吗? – 2014-12-04 14:32:23

回答

0

使用GoogleMap#getCameraPosition().bearing

0

使用传感器来获得旋转

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(); 
    } 
    } 
+0

当我旋转手机时,我使用传感器来获得旋转。但是当指南针被按下时,它不会使用传感器,它会旋转地图。 – SpyZip 2014-12-04 13:53:26