it-swarm-eu.dev

Obtenir l'emplacement sélectionné de l'activité Google Maps

J'essaie de renvoyer l'emplacement sélectionné par l'utilisateur dans l'application Google Maps Android, mais je n'arrive pas à trouver d'informations sur la façon d'accomplir cette tâche.

J'ai créé une intention d'ouvrir l'activité GMaps, mais l'utilisateur ne peut pas sélectionner un point sur la carte et l'activité ne renvoie pas de point à mon application lorsqu'elle est fermée.

J'utilise startActiviyForResult, car j'attends un résultat de l'activité.

27
foliveira

utilisez l'API Google. Il vous suffit de créer votre propre MapActivity avec MapView. Voici un excellent tutoriel sur l'API Google Y compris l'emplacement de réception sur les coups de doigt. J'espère que cela vous aidera.

16
ponkin

Vous pouvez simplement utiliser PlacePicker au lieu d'implémenter votre propre MapActivity. Vous devrez cependant ajouter la référence de la bibliothèque des services Google Play dans votre projet.

Il suffit de démarrerActivityForResult avec l'intention fournie par PlacePicker.IntentBuilder

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

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

Et puis recevoir les résultats dans 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();
    }
  }
}

Veuillez consulter https://developers.google.com/places/Android/placepicker pour plus de détails.

Un peu trop tard pour répondre à votre question mais j'espère que cela aidera quelqu'un ayant la même exigence.

44
Sudhanshu Gupta

Pour les cartes API V2, vous pouvez utiliser onMapClickListener.

map.setOnMapClickListener(new GoogleMap.OnMapClickListener() {

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

Pour plus de détails: https://developers.google.com/maps/documentation/Android/interactivity

7
Faruk Toptas

Il n'y a pas une telle possibilité - vous ne pouvez ouvrir que des cartes avec la position spécifiée http://developer.Android.com/guide/appendix/g-app-intents.html .

Au lieu de cela, vous devez créer votre propre activité avec MapView en utilisant Maps External Library .

5
zenob

Je suppose que vous cherchez des marqueurs qui traînent.

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) {}

            });

puis renvoyez votre nouvel emplacement.i.e mLocation.

2
Shah

Vous pouvez facilement le faire avec Mapbox Android SDK . Ils ont un bon tutoriel:

Comment créer un sélecteur de position pour votre application! | Mapbox

Les principaux composants nécessaires sont:

  • Android ImageView pour la broche de dépôt.
  • Mapbox Android API du marqueur SDK.
  • Mapbox Android Services pour faire le géocodage.

Location picker

1
David Miguel

salut, vous devez suivre ce lien. Passez par là, j'espère que vous obtiendrez votre solution. http://mobiforge.com/developing/story/using-google-maps-Android

1
Sudipta Som