Google map Значок маркера принимает только значки и растровые изображения. Итак, сначала вам нужно конвертировать URL-изображения в растровые изображения.
import 'dart:typed_data';
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
import 'dart:io';
Map<String, Uint8List> userIdMarkerMap = {};
Future getMarkerImage() async
{
for(int j=0;j<userIdList.length;j++) {
final File markerImageFile = await DefaultCacheManager().getSingleFile(imageURL);
final Uint8List markerImageBytes = await markerImageFile.readAsBytes();
ui.Codec codec = await ui.instantiateImageCodec(markerImageBytes, targetWidth: 50);
ui.FrameInfo fi = await codec.getNextFrame();
final Uint8List markerImage = (await fi.image.toByteData(format: ui.ImageByteFormat.png)).buffer.asUint8List();
userIdMarkerMap[userIdList[j]] = markerImage;
}
setState(() {
//call your function to build google map
});
}
, затем вы можете использовать это из маркера карты Google.
markers.add(Marker(
markerId: MarkerId(userIdList[j]),
position: LatLng(lat, lon),
icon: userIdMarkerMap[userIdList[j]] != null ? BitmapDescriptor.fromBytes(userIdMarkerMap[userIdList[j]]) : BitmapDescriptor.defaultMarker,));