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.
3 Réponses :
vous voulez prendre le mapcontroller et l'utiliser par exemple:
**GoogleMapController controller;** **controller.onMarkerTapped.add((Marker marker){/...your code.../);**
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.
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
_handleTap prend un paramètre mais votre onTap ne transmet rien, alors comment ça marche?
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"],)); });
@Mawg, cette question a reçu une réponse. Voir ci-dessous.