Google maps 颤振贴图:如何在标记点上更改标记图标
我试图找到一个解决方案,在点击标记时改变标记图标,以便提供视觉反馈。不过,我还不知道怎么做。第一个想法是通过索引访问标记,但由于标记是按Google maps 颤振贴图:如何在标记点上更改标记图标,google-maps,flutter,flutter-layout,flutter-dependencies,Google Maps,Flutter,Flutter Layout,Flutter Dependencies,我试图找到一个解决方案,在点击标记时改变标记图标,以便提供视觉反馈。不过,我还不知道怎么做。第一个想法是通过索引访问标记,但由于标记是按集合排列的,因此以正确的方式访问它没有任何变化。那么就很容易用新的来交换旧的标记了。有没有一个共同的方法来做到这一点 编辑: onTap: () { if (markerFlag != idMarker) { setState(() { if
集合排列的
,因此以正确的方式访问它没有任何变化。那么就很容易用新的来交换旧的标记了。有没有一个共同的方法来做到这一点
编辑:
onTap: () {
if (markerFlag != idMarker) {
setState(() {
if (markerFlag != null) {
_allMarkers[markerFlag] = _allMarkers[markerFlag].copyWith(iconParam: defaultMarkerIcon);
}
_allMarkers[idMarker] = _allMarkers[idMarker].copyWith(iconParam: selectedMarkerIcon);
markerFlag = idMarker;
});
}
}
onTap: (value){
if (markerFlag != null) {
setState(() {
_allMarkers[markerFlag] = _allMarkers[markerFlag].copyWith(iconParam: defaultMarkerIcon);
markerFlag = null;
});
}
}
使用Java,有如下选项<代码>设置图标用于标记。这不是对弗利特的追逐
像这样:
marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.ic_selected_user_mark_icon));
快乐编码:)我也有同样的问题。谷歌地图API没有这个选项。我手动解决了它 您可以在标记的onTap和Google地图的onTap属性中创建标志并更改图标标记
int markerFlag = null;
List<Marker> _allMarkers = [];
谷歌地图的onTap:
onTap: () {
if (markerFlag != idMarker) {
setState(() {
if (markerFlag != null) {
_allMarkers[markerFlag] = _allMarkers[markerFlag].copyWith(iconParam: defaultMarkerIcon);
}
_allMarkers[idMarker] = _allMarkers[idMarker].copyWith(iconParam: selectedMarkerIcon);
markerFlag = idMarker;
});
}
}
onTap: (value){
if (markerFlag != null) {
setState(() {
_allMarkers[markerFlag] = _allMarkers[markerFlag].copyWith(iconParam: defaultMarkerIcon);
markerFlag = null;
});
}
}
你必须建立一个新的
谷歌地图
,并在propertyHey中传递你的标记,谢谢你的回答。这绝对是不可能的,但我不想重新渲染整个地图,因为它看起来很糟糕。@Flacon,你找到解决方案了吗?这是一个很好的解决方案。作为提醒,标记需要作为一个集合,而不是一个列表,因此我在GoogleMap小部件中使用了标记:\u markers.toSet(),
。此解决方案是否有任何性能成本?