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.