addCustomMarker method

  1. @override
Future<void> addCustomMarker({
  1. required Widget child,
  2. required double latitude,
  3. required double longitude,
  4. required String markerId,
  5. bool? setIsIconClickable = false,
  6. bool? setIsAnimationEnable = false,
  7. bool? setIsInfoWindowDismissOnClick = false,
})
override

Implementation

@override
Future<void> addCustomMarker({
  required Widget child,
  required double latitude,
  required double longitude,
  required String markerId,
  bool? setIsIconClickable = false,
  bool? setIsAnimationEnable = false,
  bool? setIsInfoWindowDismissOnClick = false,
}) async {
  try {
    ScreenshotController screenshotController = ScreenshotController();
    var capturedImage = await screenshotController.captureFromWidget(child);
    await Future.delayed(Duration(seconds: 1));

    var bytes = capturedImage.buffer.asUint8List();

    await methodChannel.invokeMethod('addMarker', {
      'markerId': markerId,
      'latitude': latitude,
      'longitude': longitude,
      'imageBytes': bytes,
      "setIsIconClickable": setIsIconClickable,
      "setIsAnimationEnable": setIsAnimationEnable,
      "setIsInfoWindowDismissOnClick": setIsInfoWindowDismissOnClick,
    });
  } on PlatformException catch (e) {
    throw Exception("Failed to add custom marker: '${e.message}'.");
  }
}