web-dev-qa-db-fra.com

Ajouter un marqueur sur Android Google Map via le toucher ou appuyez sur

Je suis un débutant dans le développeur Android. Je souhaite développer une application cartographique à l'aide de Google Map ..__ Maintenant, je souhaite ajouter un marqueur sur la carte via Touch ou Tap of the Map. Je ne sais pas comment appliquer un événement tactile pour déposer le marqueur sur la carte. Dites-moi et, si cela est possible, donnez-moi s'il vous plaît des liens ou des exemples. Merci et désolé pour mon anglais.

18
shiteru

Ce code a été exécuté avec succès. Je travaille sur ce code auquel ce code est destiné/ Dynamic Draw  

Je pense que ce code vous aide davantage pour les emplacements statiques ou dynamiques que vous pouvez utiliser ce code 

double latval = Double.parseDouble(jsonobject.getString("lat"));
double longval = Double.parseDouble(jsonobject.getString("lon"));

mMap.addMarker(new MarkerOptions()
               .position(new LatLng( latval,    longval))
               .title(jsonobject.getString("country"))
               .snippet("4 E. 28TH Street From $15 /per night")
               .rotation((float) -15.0)
               .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE))
              );

if (i == 0) {
    mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(
                                new LatLng(latval, longval), 7));
    mMap.addCircle(new CircleOptions()
                   .center(new LatLng(latval,longval))
                   .radius(5000)
                   .strokeColor(Color.RED)
                   .fillColor(Color.RED)); 
}
5
user3066085

Essayez d’utiliser le nouveau Google Map API v2

C'est facile à utiliser et vous pouvez ajouter un marqueur au robinet comme ceci:

map.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
    @Override
    public void onMapClick(LatLng point) {
        allPoints.add(point);
        map.clear();
        map.addMarker(new MarkerOptions().position(point));
    }
});

ou dans Kotlin:

map.setOnMapClickListener {
    allPoints.add(it)
    map.clear()
    map.addMarker(MarkerOptions().position(it))
}

Notez que vous voudrez peut-être mémoriser tous les points ajoutés dans une liste (allPoints) afin de pouvoir les redessiner ou les supprimer ultérieurement. Une approche encore meilleure pour mémoriser les points consiste à mémoriser un objet Marker pour chacun d’eux - vous pouvez obtenir l’objet Marker à la suite de la fonction addMarker, il dispose d’une fonction remove() qui supprime facilement le marqueur de la carte.

51
Sharanu

La technique que j'ai utilisée est:

googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {

                @Override
                public void onMapClick(LatLng point) {

                    MarkerOptions marker = new MarkerOptions().position(
                            new LatLng(point.latitude, point.longitude)).title("New Marker");

                    googleMap.addMarker(marker);

                System.out.println(point.latitude+"---"+ point.longitude);  
                }
            });

j'espère que ça aide!!!

15
Akanksha Rathore

Essayez ces Tutorial 1 et Tutorial 2 pour comprendre Google Maps.

et référez-vous link à Stack Overflow Question pour le faire sur onTouch

0
DeltaCap019