Marker(
markerId: MarkerId("id"), // a string for marker unique id
icon: BitmapDescriptor.defaultMarker(), // options for hues and custom imgs
position: LatLng(lat, long), // lat and long doubles
onTap: () {
//this is what you're looking for!
}
),
var map = <String, String> {}; // custom object
for (int i = 0; i < mCrag.length; i++) {
controller.addMarker(new MarkerOptions(
icon: BitmapDescriptor.fromAsset('assets/images/down-arrow.png'),
position: LatLng(double.parse(mCrag[i].lat), double.parse(mCrag[i].lon)),
)).then((marker) {
map[marker.id] = mCrag[i].id; // this will return when tap on marker
return marker;
});
}
// marker click event
void onMarkerTapped(Marker marker) {
var selectedMarker = map[marker.id]; // here you will get your id.
debugPrint(selectedMarker);
getRoutes(selectedMarker);
}
7条答案
按热度按时间ev7lccsx1#
随着版本^0.3.0+1的发布,引入了一个新的标记器API,它将标记器作为小部件处理(包括onTap()方法)。这样,Google Map就有了一个
markers:
选项,允许一个Marker对象列表。每个元素都可以这样定义:比以前的控制器方法容易得多!
pdkcd3nj2#
您可以使用Map插件中的onTap或onLongPress选项来监控点击事件。然后你可以在点击的位置按以下方式添加标记
其中_onAddMarkerButtonPressed函数为
esyap4oy3#
请记住,当前版本是0.0.3版本的开发人员预览版。请给它一点时间让事情运转起来!
ajsxfq5m4#
cxfofazt5#
创建标记时创建自定义对象。
olmpazwi6#
我使用
flutter_map
包,我尝试了这个,它与我一起工作。fae0ux8s7#
你可以这样做
其中
_mapController
是GoogleMapController
的一个instance:)