Cómo obtener la ubicación de Google Map después de soltar Pin sobre ella

Estoy tratando de obtener la ubicación de GoogleMap con ImageView sobre ella. Puedo arrastrar esta imagen de pin y la posición donde la dejo caer, debo conseguir su localización.

Estoy usando framelayout con googleMap como su primer hijo y ImageView (es decir Pin) como su segundo elemento hijo.

Lo mismo que tenemos en la aplicación Google Maps.

Introduzca aquí la descripción de la imagen .

Por favor, sugerirme, ¿cómo lograrlo?

Mi archivo de diseño:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <fragment android:id="@+id/fetchaddressMap" android:layout_width="wrap_content" android:layout_height="wrap_content" class="com.google.android.gms.maps.MapFragment" /> <ImageButton android:id="@+id/markerRed" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@android:color/transparent" android:contentDescription="@string/content_description" android:src="@drawable/marker_red" android:visibility="visible" /> </FrameLayout> 

Supongo que rawY puntos rawX y rawY la pantalla a través de un objeto MotionEvent recibido en un OnTouchListener .

Con esas 2 coordenadas puedes encontrar la ubicación en el mapa con la ayuda de una Projection :

 Projection projection = googleMap.getProjection(); Log.e("TAG", projection.fromScreenLocation(new Point(x, y)).toString()); 

Te recomendaría usar los marcadores que ya están incorporados en el Api de Google Maps, sólo tienes que establecer el marcador como arrastrable y agregar un oyente, las devoluciones de llamada te proporcionarán toda la información que necesitas. Más información en la documentación . También puede utilizar la biblioteca Utilidades de mapas de Android para definir marcadores personalizados.

Necesita implementar la clase OnMarkerDragListener. También puede obtener la dirección de la calle y otras informaciones. Lea los documentos.

http://developer.android.com/reference/android/location/Geocoder.html http://developer.android.com/reference/android/location/Address.html

 mMap.setOnMarkerDragListener(new GoogleMap.OnMarkerDragListener() { @Override public void onMarkerDragStart(Marker marker) { } @Override public void onMarkerDrag(Marker marker) { } @Override public void onMarkerDragEnd(Marker marker) { marker.getPosition(); Geocoder geocoder; List<Address> addresses; geocoder = new Geocoder(MapsActivity.this, Locale.getDefault()); try { addresses = geocoder.getFromLocation(marker.getPosition().latitude, marker.getPosition().longitude, 1); String city = addresses.get(0).getAddressLine(1); Toast.makeText(MapsActivity.this, city, Toast.LENGTH_SHORT).show(); } catch (IOException e) { e.printStackTrace(); } } }); 

Usa las clavijas de android para una mejor y fácil implementación. Sin embargo, si desea utilizar alfileres de aduanas, entonces no necesita agregar esa imagen en la framelayout. Borre esa vista de imagen. Vea este enlace para ver cómo personalizar un marcador.

Espero que ayude.

  • Creación de un objeto de ubicación de Android
  • La ubicación devuelve 0.0 con WIFI / 3G / 4G en Lollipop 5.0.2
  • ¿Cómo burlar la ubicación durante una presentación en un dispositivo real?
  • Cómo calcular el total de millas Viajar de la ubicación actual a otra ubicación ¿Oyente de ubicación?
  • La importación com.google.android.gms.location.LocationClient no se puede resolver
  • Por qué getSpeed ​​() siempre devuelve 0 en android
  • Ubicaciones de Cell Tower - Android
  • Tiempo de viaje entre dos ubicaciones en Google Map Android API V2
  • Google maps haz para mostrar las direcciones de usuario / título en android MapFragment
  • Localización fuera de línea basada en la aplicación Android
  • Android escribe EXIF ​​Latitude y Longitud GPS en JPEG falló
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.