Как повернуть стрелку в Googlemap v2, когда мы поворачиваем телефон

StackOverflow https://stackoverflow.com/questions/19826543

Вопрос

Кто -нибудь может помочь мне, как поворачивать головку стрелки в Google Map v2? Вы видели, что в Невигации головка стрелы вращается в направлении, с которым мы сталкиваемся. Я хочу внедрить это в свое приложение. Я красный markerOption.rotation(rotation) Это кажется статичным. Я хочу динамически повернуть стрелку, когда я поворачиваю телефон.

Это было полезно?

Решение

Я смог это сделать. Это очень просто. Ниже как. Это должно прочитать датчик и получить ориентацию телефона.

/**
 * 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
 }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top