我刚刚开始研究颤振/飞镖。来自HTML5 / Javascript,我想知道它等效于:
google.maps.event.addListener(map, 'click', function(event) {
placeMarker(event.latLng);
});
function placeMarker(location) {
var marker = new google.maps.Marker({
position: location,
map: map
});
}
我在互联网上四处张望,我发现了很多添加标记的示例,但没有点击地图(例如Example 1,Example 2)。 google_maps_flutter插件对此没有提及。通过点击地图可以添加标记,还是尚不可用?
谢谢。
答案 0 :(得分:2)
plugin最终为onTap
类添加了GoogleMap
属性。
final ArgumentCallback<LatLng> onTap
示例:
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),
));
});
}
答案 1 :(得分:0)
您要使用mapcontroller并将其用于ex:
**GoogleMapController controller;**
**controller.onMarkerTapped.add((Marker marker){/...your code.../);**
答案 2 :(得分:0)
我的问题也是如此。 您必须拉google_map分支,该分支提供像onMapClickListener等的侦听器。 也许这可以帮助您: https://github.com/flutter/plugins/pull/1121
致谢
答案 3 :(得分:0)
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"],));
});