2

I'm getting the following error when trying to display a marker's info window:

E/flutter ( 1712): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: PlatformException(Invalid markerId, showInfoWindow called with invalid markerId, null)

The map and the markers are displayed correctly and when I tap on them the info window is displayed correctly as well. My intention, however, is to have the info windows on both markers displayed all the time. At the moment I'm only trying to display on one marker to show the problem. I followed the execution with the debugger all the way to the method channel on the java side and I never saw a null markerId passed. Thanks for your help.

Here's my code:

  onMapCreated(GoogleMapController controller) async {

    final double padding = 150.0;
    final double width = mediaSize.width - padding;
    final double height = mediaSize.height - padding;

    // Create map bounds
    final bounds = createTargetBounds();

    // Build markers title and snippet information for both current location and destination
    final NumberFormat fmt = new NumberFormat('0', 'en_ZA');

    final startMarkerId = MarkerId('start');
    final startMarker = Marker(
      markerId: startMarkerId,
      position: LatLng(currentLocation.latitude, currentLocation.longitude),
      infoWindow: InfoWindow(title: 'You are here')
    );

    // Determine distance to destination
    double distance = await Geolocator().distanceBetween(
        bounds.southwest.latitude,
        bounds.southwest.longitude,
        bounds.northeast.latitude,
        bounds.northeast.longitude);
    final finishSnippetInfo = 'Approx ${fmt.format(distance)} meters away from you.';

    final finishMarkerId = MarkerId('finish');
    final finishMarker = Marker(
      markerId: finishMarkerId,
      position: LatLng(
          destination.latitude,
          destination.longitude
      ),
      infoWindow: InfoWindow(title: 'Delivery point', snippet: finishSnippetInfo),
      icon: await deliveryIcon
    );

    // Clear and add markers to map
    markers.clear();
    markers[startMarkerId] = startMarker;
    markers[finishMarkerId] = finishMarker;
    controller.showMarkerInfoWindow(startMarkerId);

    // Determine correct level of zoom
    double zoom =
        _getBoundsZoomLevel(bounds.northeast, bounds.southwest, width, height);
    controller.moveCamera(CameraUpdate.zoomTo(zoom));

    callBack();
  }
Ernesto
  • 103
  • 1
  • 8
  • One of the subjects of meta question *[Users doing Google first-level customer support](https://meta.stackoverflow.com/questions/399137/users-doing-google-first-level-customer-support)*. – Peter Mortensen Aug 09 '20 at 14:22
  • I'm having the same issue, Have you managed to fix it?? – AK-23 Jan 15 '21 at 21:56

0 Answers0