2010-12-13 24 views
21

Estoy tratando de devolver la ubicación seleccionada por el usuario en la aplicación Android de Google Maps, pero parece que no puedo encontrar información sobre cómo lograr esta tarea.Obtener la ubicación seleccionada de la actividad de Google Maps

Creé un Intento para abrir la Actividad de GMaps, pero el usuario no puede seleccionar un punto en el mapa ni la Actividad devuelve un punto a mi aplicación cuando se cierra.

Estoy usando startActiviyForResult, ya que estoy esperando un resultado de la Actividad.

Respuesta

15

usan Google API. Solo necesita crear su propia MapActivity con MapView. Here is great tutorial on Google API Incluyendo la ubicación de recepción con los dedos. Espero que esto ayude

+0

Enlace caducado ¡Por favor, actualice! – Killer

6

Para mapas API V2 puede usar enMapClickListener.

map.setOnMapClickListener(new GoogleMap.OnMapClickListener() { 

     @Override 
     public void onMapClick(LatLng point) { 
      Toast.makeText(getApplicationContext(), point.toString(), Toast.LENGTH_SHORT).show(); 
     } 
}); 

Para más detalles: https://developers.google.com/maps/documentation/android/interactivity

+0

gracias, estaba buscando esto –

1

supongo que busca los marcadores de arrastre.

mMap.setMyLocationEnabled(true); 
mLocation = mMap.getMyLocation(); 
mMap.addMarker(new MarkerOptions().position(new LatLng(mLocation.getLatitude(), mLocation.getLongitude())).draggable(true)); 
      mMap.setOnMarkerDragListener(new OnMarkerDragListener() { 

       @Override 
       public void onMarkerDrag(Marker marker) { 

       } 
       @Override 
       public void onMarkerDragEnd(Marker marker) { 
        LatLng newLocation = marker.getPosition(); 
        mLocation.setLatitude(newLocation.latitude); 
        mLocation.setLongitude(newLocation.longitude); 
        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(mLocation.getLatitude(), mLocation.getLongitude()), 15.0f)); 

       } 
       @Override 
       public void onMarkerDragStart(Marker marker) {} 

      }); 

luego devuelva su nueva ubicación.i.e mLocation.

36

Puede simplemente usar PlacePicker en lugar de implementar su propia MapActivity. Sin embargo, deberá agregar la referencia de biblioteca de servicios de Google Play en su proyecto.

Sólo startActivityForResult con la intención proporcionada por PlacePicker.IntentBuilder

int PLACE_PICKER_REQUEST = 1; 
PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder(); 

Context context = getApplicationContext(); 
startActivityForResult(builder.build(context), PLACE_PICKER_REQUEST); 

y luego recibir los resultados en onActivityResult

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == PLACE_PICKER_REQUEST) { 
    if (resultCode == RESULT_OK) { 
     Place place = PlacePicker.getPlace(data, this); 
     String toastMsg = String.format("Place: %s", place.getName()); 
     Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show(); 
    } 
    } 
} 

favor refiérase https://developers.google.com/places/android/placepicker para más detalles.

Un poco tarde para responder a su pregunta, pero espero que esto ayude a alguien que tenga los mismos requisitos.

+0

Impresionante que estaba buscando esto :) lo intentaré – hadi

+0

Desafortunadamente la actividad de PlacePicker no permite al usuario buscar – satur9nine

+0

Esto es extremadamente limpio. A + – pandalion98

Cuestiones relacionadas