6
votes

Comment ajouter un marqueur appuyez / cliquez sur la carte en utilisant Flutter / Dart?

Je viens de commencer à me pencher sur le flutter / dart. Venant de HTML5 / Javascript, je me demande ce que serait l'équivalent de:

google.maps.event.addListener(map, 'click', function(event) {
 placeMarker(event.latLng);
});

function placeMarker(location) {
var marker = new google.maps.Marker({
    position: location, 
    map: map
});

}

J'ai cherché partout sur Internet, et j'ai trouvé de nombreux exemples d'ajout marqueurs, mais pas sur la carte cliquez sur. (par exemple, Exemple 1 Exemple 2 ). Le plugin google_maps_flutter ne mentionne encore rien à ce sujet. Est-il possible d'ajouter le marqueur en touchant la carte, ou est-ce quelque chose qui n'est toujours pas disponible?

Merci d'avance.


1 commentaires

@Mawg, cette question a reçu une réponse. Voir ci-dessous.


3 Réponses :


-1
votes

vous voulez prendre le mapcontroller et l'utiliser par exemple:

**GoogleMapController controller;**

**controller.onMarkerTapped.add((Marker marker){/...your code.../);**


1 commentaires

Merci, mais j'essaye de placer un nouveau marqueur lorsque je clique sur la carte, pas de déclencher une action lorsque je clique sur un marqueur.



19
votes

Le plug-in a enfin ajouté un propriété onTap pour la classe GoogleMap .

GoogleMap(
    markers: _markers,
    initialCameraPosition: _theSecretLocation,
    onMapCreated: (GoogleMapController controller) {
      _controller.complete(controller);
    },
    onTap: _handleTap,
  ),
  ...

 _handleTap(LatLng point) {
setState(() {
  _markers.add(Marker(
    markerId: MarkerId(point.toString()),
    position: point,
    infoWindow: InfoWindow(
      title: 'I am a marker',
    ),
    icon:
        BitmapDescriptor.defaultMarkerWithHue(BitmapDescriptor.hueMagenta),
  ));
});
}

Exemple:

final ArgumentCallback<LatLng> onTap


1 commentaires

_handleTap prend un paramètre mais votre onTap ne transmet rien, alors comment ça marche?



0
votes
      List _markers = List.generate(10, (index) {
      Map result = results[index];
      Map location = result["geometry"]["location"];
      LatLng latLngMarker = LatLng(location["lat"], location["lng"]);

      return Marker(
          markerId: MarkerId("marker$index"),
          position: latLngMarker,
          onTap: () {
                     //Your code here...
                    },
          infoWindow: InfoWindow(title: result["name"],));
    });

   

0 commentaires