Pregunta

¿Alguien puede ayudarme con cómo rotar el cabezal de flecha en Google Map V2? Has visto que en nevigación el cabezal de flecha está girando hacia la dirección que enfrentamos. Quiero implementar eso en mi aplicación. Estoy rojo markerOption.rotation(rotation) Esto parece estático. Quiero rotar la flecha dinámicamente cuando gire el teléfono.

¿Fue útil?

Solución

Pude hacer eso. Es tan fácil. A continuación se muestra cómo. Esto es para leer el sensor y obtener la orientación del teléfono.

/**
 * 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) {
    }
};

Y aquí es donde realmente giro. Mi marcador ya está agregado al mapa. Y lo estoy accediendo desde otra clase.

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
 }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top