我想使用自定義標記作為用戶位置。我正在收聽位置事件,并且在每次移動時我都想在此標記上設定新的緯度/經度。但是我看不到任何更新標記位置的選項。我怎樣才能做到這一點?我試過洗掉當前標記并添加一個新標記,但是我不想要丑陋的閃光效果。
final marker = Marker(
markerId: MarkerId('1'),
position: LatLng(_latitude, _longitude),
icon: await customIcon()
);
setState(() {
_markers.add(marker);
});
_location.onLocationChanged.listen((event) async {
//here I want to update the marker lat lng with new event.latitude and event.longitude
});
uj5u.com熱心網友回復:
嘗試以下
_location.onLocationChanged.listen((event) async {
final newMarker = Marker(
markerId: MarkerId('1'),
position: LatLng(event.latitude, event.longitude),
icon: await customIcon()
);
final oldMarkerIndex = _markers.indexWhere((marker) => marker.markerId == MarkerId('1'));
if(oldMarkerIndex > 0) { // If it exists
setState(() {
_markers[oldMarkerIndex] = newMarker;
});
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/435872.html
上一篇:在移動和網路上使用谷歌地圖
