showAutocomplete method

  1. @override
Future<Place> showAutocomplete({
  1. required PlaceAutocompleteMode mode,
  2. LocationPlace? bias,
  3. LocationPlace? restriction,
  4. TypeFilter? typeFilter,
  5. String? countryCode,
})
override

Implementation

@override
Future<Place> showAutocomplete({
  required PlaceAutocompleteMode mode,
  LocationPlace? bias,
  LocationPlace? restriction,
  TypeFilter? typeFilter,
  String? countryCode,
}) async {
  var argMap = {
    "mode": mode == PlaceAutocompleteMode.modeOverlay ? 71 : 72,
    "bias": bias?.toJson(),
    "restriction": restriction?.toJson(),
    "type": typeFilter?.name,
    "country": countryCode,
  };

  final result = await methodChannel.invokeMethod<Map<dynamic, dynamic>?>(
    'showAutocomplete',
    argMap,
  );

  if (result == null) {
    throw PlatformException(
      code: 'NULL_RESULT',
      message: 'No place was selected or result is null',
    );
  }

  // Convert Map<dynamic, dynamic> to Map<String, dynamic>
  final placeMap = Map<String, dynamic>.from(result);

  return Place.fromJson(placeMap);
}