searchAddresses method

Future<List<List>> searchAddresses(
  1. String search
)

Searches for addresses based on a given search string. Returns a list of addresses with their corresponding GeoPoints. Uses the geocode.maps.co API for geocoding. param search The search string to look for. return A list of addresses with their corresponding GeoPoints. Each address is represented as a list containing the address string and its GeoPoint.

Implementation

Future<List<List>> searchAddresses(String search) async {
  var response = await http.get(
    Uri.parse("https://geocode.maps.co/search?&q=$search&api_key=$_apiKey"),
  );
  try {
    if (response.statusCode != 200) {
      return [
        ["Error", const GeoPoint(0, 0)],
      ];
    }
  } catch (e) {
    return [
      ["Error", const GeoPoint(0, 0)],
    ];
  }
  List js = jsonDecode(response.body);
  var data = js.take(4);
  List<List> back = [];
  for (var p in data) {
    back.add([
      p["display_name"].toString().split(", ").take(3).join(", "),
      GeoPoint(double.parse(p["lat"]), double.parse(p["lon"])),
    ]);
  }
  return back;
}