getAddressList method

  1. @override
Future<List<Address?>> getAddressList({
  1. required double longitude,
  2. required double latitude,
  3. dynamic options = const GetAddressOptions(),
})

Implementation

@override
Future<List<Address?>> getAddressList(
    {required double longitude, required double latitude, dynamic options = const GetAddressOptions()}) async {
  assert(options is GetAddressOptions);

  final response = await reverseGeoCode(
    lat: latitude,
    lon: longitude,
    mode: options.mode,
    maxResults: options.maxResults,
  );

  if (response.geoCode?.view != null) {
    var result = response.geoCode!.view!.first.result!;
    result.sort((v1, v2) => _getMatchLevelIndex(v1.matchLevel) > _getMatchLevelIndex(v2.matchLevel) ? 0 : 1);
    print(result);

    if (options.matchLevel != null) {
      final levelName = EnumUtils.getName(options.matchLevel!);
      result.where((element) => element.matchLevel == levelName).toList();
    }

    final hereAddressList = result.map((e) => e.location.address);

    return hereAddressList.map((e) => HereConverter.hereAddressToAddress(e)).toList();
  }

  return [];
}