Arrastrar marker en Android Google Maps

publicado por: Anonymous

es posible hacer esto en android studio, tengo mi mapa pero necesito que el usuario pueda arrastrar el marker para especificar algo. sé como obtener mi lat y lng actual pero como puedo implementar el arrastre?.

solución

Extraído de Marcadores Google Maps

Los marcadores están diseñados para ser interactivos. Reciben eventos de click de manera predeterminada, y a menudo se usan junto con receptores de eventos para activar ventanas de información. Fijar la propiedad draggable en el valor true permite al usuario modificar la posición del marcador. Aplica una pulsación prolongada para activar la posibilidad de mover el marcador.

Hacer que un marcador pueda arrastrarse

static final LatLng PERTH = new LatLng(-31.90, 115.86);
Marker perth = mMap.addMarker(new MarkerOptions()
                          .position(PERTH)
                          .draggable(true));

Eventos de arrastre de marcadores.

Puedes usar un OnMarkerDragListener para escuchar eventos de arrastre de un marcador. Para configurar este receptor en el mapa, llama a GoogleMap.setOnMarkerDragListener.

Para arrastrar un marcador, un usuario debe mantener presionado el marcador por un tiempo prolongado. Cuando el usuario retire el dedo de la pantalla, el marcador permanecerá en la posición determinada. Cuando se arrastra un marcador, inicialmente se llama a onMarkerDragStart(Marker).

Cuando se arrastra el marcador, se llama a onMarkerDrag(Marker) en forma constante. Al final de la operación de arrastre, se llama a onMarkerDragEnd(Marker). Puedes obtener la posición del marcador en cualquier momento llamando a Marker.getPosition().

 myMap.setOnMarkerDragListener(this);

 @Override
 public void onMarkerDrag(Marker marker) {
    Log.d(TAG, "Marker " + marker.getId() + " [email protected]" + marker.getPosition());
 }

 @Override
 public void onMarkerDragEnd(Marker marker) {
    Log.d(TAG,"Marker " + marker.getId() + " DragEnd");
 }

 @Override
 public void onMarkerDragStart(Marker marker) {
    Log.d(TAG,"Marker " + marker.getId() + " DragStart");
 }

Un ejemplo más completo Google Maps Android API v2 example: Draggable Marker

Nota: De manera predeterminada, los marcadores no pueden moverse. La
posibilidad de que un usuario arrastre un marcador debe establecerse
específicamente. Esto es posible con MarkerOptions.draggable(boolean)
antes de agregar el marcador al mapa, o con
Marker.setDraggable(boolean) una vez que se ha agregado a este.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *