Estoy tratando de agregar múltiples marcadores en el mapa de google. Aquí está mi código secciónagregar marcador múltiple en el mapa de google en android
public class GoogleMap extends MapView
{
MapController mc;
MapView mapView;
GeoPoint p;
@Override
public void onCreate(Bundle savedInstanceState)
{
....
double lat = Double.parseDouble(bundle.getString("paramLat"));
double lng = Double.parseDouble(bundle.getString("paramLong"));
mc = mapView.getController();
p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
mc.animateTo(p);
mc.setZoom(17);
//---Add a location marker---
MapOverlay mapOverlay = new MapOverlay();
List<Overlay> listOfOverlays = mapView.getOverlays();
listOfOverlays.clear();
listOfOverlays.add(mapOverlay);
mapView.invalidate();
}
class MapOverlay extends com.google.android.maps.Overlay
{
@Override
public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when)
{
super.draw(canvas, mapView, shadow);
//---translate the GeoPoint to screen pixels---
Point screenPts = new Point();
mapView.getProjection().toPixels(p, screenPts);
//---add the marker---
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.pushpin);
canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);
return true;
}
}
Tengo dos preguntas aquí. Cuando intenté agregar solo un marcador, funciona, pero el método de dibujo se invoca muchas veces. ¿Pero por qué? y cuando se invoca?
La segunda pregunta es cómo puedo agregar un marcador nuevo. Creé un segundo geoPoint llamado p2 y después de eso, ¿qué debo hacer? Muchas gracias.
Oh, y se dibuja varias veces para cada capa en el mapa. Primero dibuja la cuadrícula, luego dibuja el mapa, luego dibuja los puntos. Si está mostrando la pantalla actualizar varias veces, entonces no sé qué está pasando. – Shaun