¿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!

  • Superponer una actividad en otra actividad O superponer una vista sobre otra
  • Barra de navegación translúcida (Android 4.4) - Mostrar contenido debajo
  • Color de relieve de superposición de círculo no dibujado siempre en Google Maps v2
  • RelativaLayout TextView superposición
  • ¿Cómo puedo dibujar una flecha que muestre la dirección de manejo en MapView?
  • Eliminar todas las superposiciones
  • Lista de clics dentro de OverlayItem (MapView para Android)
  • Uso de ItemizedOverlay y OverlayItem en Android Beta 0.9
  • Android: ItemizedOverlay onTouchEvent y onTap se superponen
  • Cómo dibujar polígono mano libre en Google mapa V2 en Android?
  • Almacenamiento en caché de superposiciones al redondear rectángulos de coordenadas - ¿cómo?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.