这是我的代码
void addCustomIcon(){
BitmapDescriptor.fromAssetImage(
const ImageConfiguration(), "assets/camera_icon.png")
.then(
(icon){
setState(() {
markerIcon = icon;
});
}
);
}
void initState() {
addCustomIcon();
intilize();
super.initState();
}
intilize(){
Marker m1 = Marker(
markerId: MarkerId('m1'),
position: LatLng(1.33397173881531, 103.77531433105469),
infoWindow: InfoWindow(title: 'Marker 1'),
icon: markerIcon,
);}
这是Google Maps的代码:
GoogleMap(
initialCameraPosition: CameraPosition(target: LatLng(1, 100), zoom: 16),
markers: markers.map((e) => e).toSet(),
trafficEnabled: true,
myLocationEnabled: true,
mapType: MapType.normal,)
我试图让我的资产文件中的标记图标更改为camera_icon,但它仍然显示红色的默认标记。如何将标记图标更改为camera_icon?
1条答案
按热度按时间w8rqjzmb1#
嘿,我试着帮你
看起来你异步地将标记分配给了markerIcon,这在addCustomIcon()中执行,还有另一个函数名为intilize()来将addCustomIcon()的图标结果分配给Set,我猜问题是因为这个addCustomIcon()还没有完成,并且intilize()被提前调用,它没有等待addCustomIcon()完成分配过程。
然后试试这个:
我在这里做了一些修改,将intilize()函数的内容添加到addCustomIcon()中。