Pinche para ampliar con Osmdroid
He escrito una aplicación de mapeo que tiene dos actividades, una actividad muestra una vista de Google Maps, la otra muestra la vista equivalente con osmdroid 3.0.5 jar.
Hasta ahora he estado probando sólo en emuladores y la funcionalidad es completamente idéntica en términos de área mostrada y datos de superposición. Ahora he corrido la aplicación en un dispositivo real del pan de jengibre, observo que la actividad de Google Maps parece apoyar la pizca para hacer zoom, mientras que el Osmdroid uno no.
- Osmdroid, API de Google Maps v2 y fragmentos
- Osmdroid mapa no visible
- ¿Cómo caché / descargar google map v2 tile programmatically?
- Enrutamiento sin conexión en android
- Conexión a la base de datos PostGIS
No he escrito ningún código específico para pellizcar el zoom para el lado de Google o para Osmdroid. Ambas actividades implementan OnTouchListener. Ambas actividades sólo tienen un talón para OnTouch como:
@Override public boolean onTouch(View v, MotionEvent e) { // chain it for now return false; }
Mi mapa en la actividad Osmdroid es de la clase: org.osmdroid.views.MapView
¿Alguien sabe cómo hacer pellizcar a zoom trabajar con osmdroid o saber de una aplicación de ejemplo utilizando osmdroid que podría estudiar y adaptarse a mi aplicación?
- RoadManager para el error osmdroid
- OSMDROID android 4.2: Mapquest: A partir del 11 de julio de 2010, el acceso directo a los mosaicos ha sido descontinuado
- ¿Cómo puedo implementar un geocodificador sin conexión para una sola ciudad utilizando datos OSM en android?
- Descargar mapas para osmdroid
- Cómo descargar osmdroid azulejos en el usuario final?
- ¿Cómo puedo implementar mapas sin conexión usando osmdroid al guardar imágenes de mosaicos de mapa en la base de datos sqlite?
- Osmdroid Bonuspack - MyLocationNewOverlay
- Botones sobre Mapview
Osmdroid tiene la funcionalidad de zoom. Tendrá que configurar un gesturelistener para comprobar la acción de pellizco, en cuyo punto debe llamar a la función de zoom en osmdroid. Creo que en osmdroid 3.0.5 es algo así como
mOsm.getController.setZoomLevel(someNumber)
(mOsm es una instancia de la vista de mapa).
Tengo la función de zoom funcionando para la pizca opuesta (los dedos empiezan juntos y luego se expanden). Sugiero usar un MotionEvent (como lo estás haciendo actualmente) y hacer algo como esto:
boolean finished = false; @Override public boolean onTouch(View v, MotionEvent e) { switch (e.getAction()) { case MotionEvent.ACTION_DOWN: finished = false; break; case MotionEvent.ACTION_MOVE: finished = false; break; case MotionEvent.ACTION_UP: //action is finishing at this point, so now I can do my refreshActionOnMap(); if (!finished) refreshActionOnMap(); break; } return true; }
El código que he agregado se ocupa de la pizca – el boolean terminado es algo que implementé en mi programa para averiguar cuándo actualizar el mapa. Eso debería ayudarte más.
Aquí hay una explicación más detallada de esto.
Si está buscando algo diferente, intente leer aquí . Android ha estado apoyando la acción de pellizco desde junio de 2010 al parecer.
MapView.setBuiltInZoomControls(true); MapView.setMultiTouchControls(true);
¿Es posible no acercar al centro del mapa sino a la mitad de los usuarios dos dedos.