3

Может кто-нибудь помочь мне с тем, как вращать стрелку в google map v2? Вы видели, что в окуляре стрелка поворачивается в направлении, с которым мы сталкиваемся. Я хочу реализовать это в своем приложении. I red около markerOption.rotation(rotation) это кажется статическим. Я хочу вращать стрелку динамически, когда я поворачиваю телефон.Как повернуть стрелку в googlemap v2, когда мы поворачиваем телефон

ответ

5

Я был в состоянии сделать это. Это очень просто. ниже как. Это, чтобы прочитать датчик и получить ориентацию телефона.

/** 
* Initialize the sensor manager. 
*/ 
private void setupSensorManager() { 
    mSensorManager = (SensorManager) mContext 
      .getSystemService(Context.SENSOR_SERVICE); 
    mSensorManager.registerListener(mSensorListener, 
      mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), 
      SensorManager.SENSOR_DELAY_NORMAL); 

    Log.d(TAG, "SensorManager setup"); 
} 

/** 
* The sensor event listener. 
*/ 
SensorEventListener mSensorListener = new SensorEventListener() { 

    @Override 
    public void onSensorChanged(SensorEvent event) { 
     mOrientation = event.values[0]; 
     Log.d(TAG, "Phone Moved "+mOrientation); 
     draw(mOrientation); 
    } 

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

И здесь я действительно вращаюсь. Мой маркер уже добавлен на карту. И я обращаюсь к нему из другого класса.

public void draw(float angle) { 
      // Take the relevant Marker from the marker list where available in map 
    AndroidMapGoogleOverlayItem myself = (AndroidMapGoogleOverlayItem) getOverlayItem(0); 

    if (myself == null) { 
     return; 
    } 
    myself.getMarker().setRotation(mOrientation); // set the orientation value returned from the senserManager 
}