¿Se puede ampliar el tamaño de la superposición con el mapa de google en android?

He podido usar "MapActivity" y "ItemizedOverlay" para dibujar superposiciones en google maps en android con Eclipse. Pero cuando el mapa está acercando y alejándose, la superposición no cambia de tamaño.

Quiero que la superposición sea "fija" en el mapa, y haga zoom en y fuera junto con el mapa. ¿Cómo se puede hacer esto?

No puedo encontrar el tutorial para definir un límite (por ejemplo, con coordenadas GPS como esquinas para la imagen de superposición). Por favor, proporcione enlaces si conoce alguno.

Y cualquier otra forma de hacerlo?

Muchas gracias.

2 Solutions collect form web for “¿Se puede ampliar el tamaño de la superposición con el mapa de google en android?”

Sí hay. Tuve el mismo problema con mi aplicación. Aquí hay un ejemplo y funciona perfectamente. El círculo dibujado aquí varía a medida que se amplía y se aleja del mapa.

En su clase Overlay:

public class ImpactOverlay extends Overlay { private static int CIRCLERADIUS = 0; private GeoPoint geopoint; public ImpactOverlay(GeoPoint point, int myRadius) { geopoint = point; CIRCLERADIUS = myRadius; } @Override public void draw(Canvas canvas, MapView mapView, boolean shadow) { // Transfrom geoposition to Point on canvas Projection projection = mapView.getProjection(); Point point = new Point(); projection.toPixels(geopoint, point); // the circle to mark the spot Paint circle = new Paint(); circle.setColor(Color.BLACK); int myCircleRadius = metersToRadius(CIRCLERADIUS, mapView, (double)geopoint.getLatitudeE6()/1000000); canvas.drawCircle(point.x, point.y, myCircleRadius, circle); } public static int metersToRadius(float meters, MapView map, double latitude) { return (int) (map.getProjection().metersToEquatorPixels(meters) * (1/ Math.cos(Math.toRadians(latitude)))); } } 

A medida que la superposición vuelve a dibujar desde el zoom, el marcador cambiará su tamaño con base en la escala metersToRadius. Espero eso ayude.

Después de un poco de mirar a mi alrededor, surgió la siguiente respuesta (usé el código de este blog para hacer el cambio de tamaño).

He anulado el mismo método utilizado anteriormente, con algunas diferencias:

  • En lugar del método drawCircle, utilicé el método drawBitmap
  • No utilicé el objeto Paint
  • Hice un ciclo sobre los elementos de superposición para cambiar el tamaño de los marcadores

Termina así:

  for(OverlayItem currentPoint:mOverlays){ geopoint =currentPoint.getPoint(); Point point = new Point(); projection.toPixels(geopoint, point); BitmapDrawable bitDraw= ((BitmapDrawable)currentPoint.getMarker(0)); Drawable currentMarker = currentPoint.getMarker(0); /*if (currentMarker!=null){ if (currentWidthRatio<.6f) { currentWidthRatio = .6f; } else if (currentWidthRatio>1.5f) { currentWidthRatio = 1.5f; } }*/ if (bitDraw!=null){ Bitmap bitmap = getResizedBitmap(bitDraw.getBitmap(),(int)(currentMarker.getIntrinsicHeight() * currentWidthRatio), (int)(currentMarker.getIntrinsicWidth()*currentWidthRatio)); canvas.drawBitmap(bitmap, point.x - bitmap.getHeight()/2, point.y - bitmap.getWidth()/2, null); }else{ Log.println(Log.DEBUG,"non-existent point", ""); } } 

Cuidado, aunque! El método currentPoint.getMarker (0) obtiene, como su nombre indica, los datos del marcador actual. Eso significa que usted tiene su tamaño original, no la forma en que ha crecido (o encogido) desde entonces. Tienes que tener algún método para:

  • Almacenar el tamaño original del mapa
  • Verificar cómo ha cambiado desde (relación)

El código que comento maneja el tamaño máximo y mínimo que quiero permitir (por lo que los marcadores se pueden ver sin superposición / permanecer legible para el ojo humano).

¡Espero que esto ayude!

  • ¿Por qué mi sistema se superpone capturando todos los toques (no es posible interacción con la vista subyacente)
  • ¿Hay algún límite para dibujar la ruta usando Geocoder (Android)?
  • Problema de superposición de texto en ViewFlipper ..
  • Mostrar un bus móvil en google maps api v2 android
  • Barra de herramientas Android superpuesta TabLayout en CollapsingToolbarLayout
  • Android: trazado de dibujo como superposición en MapView
  • Pantalla emergente / superpuesta en panal de android
  • Dibujo es constantemente llamado en mi superposición de mapa de Android
  • Dibujar superposición en Android (en todo el sistema)
  • ¿Cómo crear una superposición que bloquea los eventos de toque a la interfaz de usuario debajo de él?
  • Mi superposición no aparece hasta que se pulse mapView en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.