Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Agregar marcador en la ubicación tocada usando google map en android

¿Cómo puedo añadir un marcador en una ubicación concreta del mapa?

Vi este código que muestra las coordenadas de la ubicación tocada. Y quiero que un marcador aparezca o se muestre en esa misma ubicación cada vez que se toca. ¿Cómo hago esto?

public boolean onTouchEvent(MotionEvent event, MapView mapView) { if (event.getAction() == 1) { GeoPoint p = mapView.getProjection().fromPixels( (int) event.getX(), (int) event.getY()); Toast.makeText(getBaseContext(), p.getLatitudeE6() / 1E6 + "," + p.getLongitudeE6() /1E6 , Toast.LENGTH_SHORT).show(); mapView.invalidate(); } return false; } 

  • Activación de un evento de mapa (como un clic de marcador) en Google Maps Android V2
  • CursorAdapter para la actividad de GoogleMaps
  • ¿Cómo obtener la posición del marcador antes de arrastrar?
  • Los marcadores se mueven al realizar el zoom con Google Maps Android API v2
  • Referencia de mapa de bits desconocida publicada
  • GoogleMaps MapView se bloquea enTap en Android?
  • Refreshing makers (ClusterItems) en Google Maps v2 para Android
  • Google Maps API v2 con diferentes acciones de marcador
  • 2 Solutions collect form web for “Agregar marcador en la ubicación tocada usando google map en android”

    Desea agregar un OverlayItem . El tutorial de Google Mapview muestra cómo usarlo.

    Si desea agregar un marcador en la ubicación tocada, debe hacer lo siguiente:

     public boolean onTouchEvent(MotionEvent event, MapView mapView) { if (event.getAction() == 1) { GeoPoint p = mapView.getProjection().fromPixels( (int) event.getX(), (int) event.getY()); Toast.makeText(getBaseContext(), p.getLatitudeE6() / 1E6 + "," + p.getLongitudeE6() /1E6 , Toast.LENGTH_SHORT).show(); mapView.getOverlays().add(new MarkerOverlay(p)); mapView.invalidate(); } return false; } 

    Compruebe que Im llamando MarkerOverlay después de que aparezca el mensaje. Para hacer que esto funcione, usted tiene que crear otro Overlay, MapOverlay:

     class MarkerOverlay extends Overlay{ private GeoPoint p; public MarkerOverlay(GeoPoint p){ this.p = p; } @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(), /*marker image*/); canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null); return true; } } 

    ¡Espero que encuentres esto útil!

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.