Как повернуть стрелку в googlemap v2, когда мы поворачиваем телефон
Кто-нибудь может мне помочь с тем, как вращать стрелку на карте Google v2? Вы видели, что при перемещении наконечник стрелки вращается в направлении, с которым мы сталкиваемся. Я хочу реализовать это в моем приложении. Я рыдаю о markerOption.rotation(rotation)
это кажется статичным. Я хочу вращать стрелку динамически, когда я поворачиваю телефон.
1 ответ
Решение
Я был в состоянии сделать это. Это очень просто. ниже как. Это чтобы прочитать датчик и получить ориентацию телефона.
/**
* 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
}