Я не могу определить, какой маркер был отмечен пользователем на картах Google. Я добавил событие onTap: _onMarkerTapped (MarkerId markerId), в котором я пытаюсь открыть еще одну страницу с более подробной Картой Google, в зависимости от того, какой пользователь маркера нажал. Когда я добавляю набор маркеров (в виде набора маркеров) на свою карту Google, я использую уникальный markerId, и это то, что я передаю в качестве аргумента частному пользовательскому методу _onMarkerTapped (). Проблема в том, что внутри этого события я всегда получал последний маркер, то есть последний маркер, который я добавил в набор. Есть ли способ получить текущий маркер, который пользователь нажал?
добавить обработчик события onTap для каждого маркера, который я добавил в набор маркеров
for (var campusData in Campuses.campusLocations) {
campusDetails = json.decode(campusData);
campus = Campus.fromJson(campusDetails);
markerId = MarkerId(i.toString());
mrkr = new Marker(
markerId: markerId, // a string for marker unique id
icon: BitmapDescriptor.fromAsset(
'assets/wsu@2x.png'), // options for hues and custom imgs
position:
LatLng(campus.latitude, campus.longitude), // lat and long doubles
onTap: () {
_onMarkerTapped(markerId);
});
campusMarkers.add(mrkr);
i++;
}
return GoogleMap(
initialCameraPosition: cameraPosition,
onMapCreated: _onMapCreated,
mapType: MapType.normal,
markers: campusMarkers,
onTap: (lng) => _onMapTapped(lng),
);
void _onMarkerTapped(MarkerId markerId) {
final Marker tappedMarker = campusMarkers.elementAt(int.parse(markerId.value));
if (tappedMarker != null) {
}
else{
print("Tapped marker is NULL..");
}
}
Ищет способы определить, какой маркер был прослушан пользователем