У меня есть что-то вроде этого
void onMapCreated(GoogleMapController controller) {
setState(() {
mapController = controller;
for (int i = 0; i < list.length; i++) {
var corte = list[0].keys.elementAt(i).split('/');
list.forEach((coords) {
mapController.addMarker(MarkerOptions(
position: LatLng(coords.values.elementAt(i).latitude,
coords.values.elementAt(i).longitude),
icon: BitmapDescriptor.defaultMarkerWithHue(corte[1] == "tipo:0"
? BitmapDescriptor.hueRed
: corte[1] == "tipo:4"
? BitmapDescriptor.hueBlue
: corte[1] == "tipo:3"
? BitmapDescriptor.hueGreen
: corte[1] == "tipo:2"
? BitmapDescriptor.hueYellow
: null),
infoWindowText: InfoWindowText(corte[0], 'Ver')));
});
}
});
}
Мне нужно создать «навигационный толчок» (например, href) в информационном окне Text.Кто-нибудь знает, как правильно сделать это?
--- ОБНОВЛЕНИЕ ---
Я прочитал здесь https://github.com/flutter/flutter/issues/24864 способ установитьидентификатор для маркера.Я пытаюсь этот код, но возвращает
Нет сеттера с именем 'id' в классе 'Marker'.
void onMapCreated(GoogleMapController controller) {
setState(() {
mapController = controller;
for (int i = 0; i < list.length; i++) {
var corte = list[0].keys.elementAt(i).split('/');
mapController.addMarker(MarkerOptions(
position: LatLng(list[0].values.elementAt(i).latitude, list[0].values.elementAt(i).longitude),
icon: BitmapDescriptor.defaultMarkerWithHue(
corte[1] == "tipo:0"
? BitmapDescriptor.hueRed
: corte[1] == "tipo:4"
? BitmapDescriptor.hueBlue
: corte[1] == "tipo:3"
? BitmapDescriptor.hueGreen
: corte[1] == "tipo:2"
? BitmapDescriptor.hueYellow
: null),
infoWindowText: InfoWindowText(corte[0], 'Ver'))).then((marker){
marker.id=corte[2];
});
mapController.onInfoWindowTapped.add((marker) {
print(marker.id);
Navigator.push(
context,
new MaterialPageRoute(
builder: (context) => corte[1] == "tipo:0"
? new MeterDetailsChartPage(
elemento: metersDetails[int.parse(marker.id)],
estate: this.estate,
parcela: widget.parcela)
: corte[1] == "tipo:4"
? new ValvePage(
elemento: valvesDetails[int.parse(marker.id)],
estate: this.estate,
parcela: widget.parcela)
: corte[1] == "tipo:3"
? new RelePage(
elemento: relesDetails[int.parse(marker.id)],
estate: this.estate,
parcela: widget.parcela)
: corte[1] == "tipo:2"
? new SensorPage(
elemento: sensorsDetails[int.parse(marker.id)],
estate: this.estate,
parcela: widget.parcela)
: null)
);
});
}
});
}