searchAddresses method
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;
}