Comportamiento extraño de superposición al ampliar el MapView

He extendido Overlay e implementado draw() con el fin de dibujar algunas cosas en el mapa. Cuando el zoom se realiza a través de mapController.zoomIn() (llamado al dobletar el mapa), la superposición se dibuja correctamente en el mapa.

Pero cada vez que hago zoom en / out con el controlador de zoom incorporado, la superposición no se dibuja correctamente y se necesita panoramizar el mapa para obtener la superposición actualizada.

6 Solutions collect form web for “Comportamiento extraño de superposición al ampliar el MapView”

Puede utilizar el controlador de zoom y deshacerse de este problema .. (ex: zoomView = (LinearLayout) mapView.getZoomControls ();)

Consultar con este enlace

http://developer.android.com/reference/android/widget/ZoomButtonsController.html

He estado utilizando controladores de zoom sin ningún problema en absoluto. Incluso habiendo dibujado varias capas en el mapa y zoom in / out no tiene ningún efecto malo en absoluto.

Sugiero utilizarlo como se indica a continuación

 mapController = mapView.getController(); mapController.zoomIn();// or .zoomOut() 

En lugar de usar setZoom (XX), por favor utilice zoomIn () / zoomOut () que hace que el zoom sea más suave, esto puede ayudar a hacer que funcione mejor esp con múltiples superposiciones.

He encontrado en mi aplicación mapview que quiero realizar un seguimiento de mi propia posición, por lo que en el código que establecer una geopunta a mi posición actual gps, a continuación, utilizar el código siguiente para mover el centro del mapa a ese punto y encontró que funciona Maravillosamente

 MapController mc = mapView.getController(); mc.animateTo(point); 

Puede crear una función que amplía y anima al punto de superposición. Espero que ayude.

He creado un montón de dibujados a medida en mi vista de mapa. Desafortunadamente, los tirantes se expandieron cuando se alejaban (cuando deberían haber encogido). Para evitar esto, he monitoreado el usuario de acercamiento o alejamiento en un runnable. Si el zoom cambió, rediseñé el mapa. Aquí está mi código:

 private Runnable zoomChecker = new Runnable() { public void run() { //check for updates if((mLastUpdate>UPDATE_INTERVAL)&&(!DISPLAY_RED_CIRCLE)&&(!DISPLAY_ROUTE_LAYOUT)){ updateRouteInformation(); mLastUpdate = 0; }else{ mLastUpdate += 200; } //check for zoom level changes int testZoomLevel = mMapView.getZoomLevel(); if((testZoomLevel!=mZoomLevel)&&(DISPLAY_RED_CIRCLE)){ //set that user is zooming mStillZooming = true; //remove overlays and clear map removeOverlayItems(); mMapView.invalidate(); //set zoom level as same mZoomLevel = testZoomLevel; } if((testZoomLevel==mZoomLevel)&&(mStillZooming)){ displayDriverBoundaries(MAP_DRIVER); } handler.removeCallbacks(zoomChecker); // remove the old callback handler.postDelayed(zoomChecker, zoomCheckingDelay); // register a new one } }; 
 public class MyMap_MapControllerActivity extends MapActivity { private MapView mapView; //private MapController mapController; MapView.LayoutParams lp; int y = 10; int x = 10; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mapView = (MapView)findViewById(R.id.map_view); mapView.setSatellite(true); mapView.setStreetView(true); mapView.setTraffic(true); GeoPoint center = mapView.getMapCenter(); int latSpan = mapView.getLatitudeSpan(); int longSpan = mapView.getLongitudeSpan(); lp = new MapView.LayoutParams(MapView.LayoutParams.WRAP_CONTENT, MapView.LayoutParams.WRAP_CONTENT, x, y, MapView.LayoutParams.TOP_LEFT); View zoomControls = mapView.getZoomControls(); mapView.addView(zoomControls, lp); mapView.displayZoomControls(true); } @Override protected boolean isRouteDisplayed() { // TODO Auto-generated method stub return false; } } 
  mapView.setBuiltInZoomControls(true); mapView.getController().setZoom(15); controller = mapView.getController(); mapOverlays = mapView.getOverlays(); 

esta.

  • Cómo implementar OnZoomListener en MapView
  • Google Maps v2 Establecer nivel de zoom
  • Cómo generar el gesto de zoom / pellizco para probar para Android
  • Obtenga coordenadas del centro de la página web en dispositivos de tableta mediante JavaScript
  • Cómo capturar el final de una animación Zoom In / Out de un MapController?
  • Android: no se muestra ImageView con UIL y TouchImageView
  • Configuración del nivel de zoom máximo en google maps android api v2
  • Galería de Android: reemplaza el mapa de bits en ImageView después de que el desplazamiento se detuvo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.