Я пытаюсь добавить информацию с карты, полученной через вызов http, в список объектов в Dart.Например, список объектов - это Инструменты, обладающие свойством toollocation:
Tool(
{this.make,
this.model,
this.description,
this.tooltype,
this.toollocation,
this.paymenttype,
this.userid});
Я также использую API матрицы расстояний Google для определения расстояния от пользователя до инструмента.
Future<DistanceMatrix> fetchDistances() async {
await getlocation();
latlongdetails = position['latitude'].toString() +
',' +
position['longitude'].toString();
print(latlongdetails);
print('still running');
final apiresponsepc = await http
.get(
'https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=$latlongdetails&destinations=$postcodes&key=xxx');
distanceMatrix =
new DistanceMatrix.fromJson(json.decode(apiresponsepc.body));
return distanceMatrix;
}
То, что я делал в прошлом - это вызов будущего и просто получение расстояния, как только я верну исходные результаты для инструмента.Однако я хочу иметь возможность сортировать результаты инструмента по расстоянию, поэтому мне нужно пройтись по каждому инструменту в списке и добавить расстояние для каждого из них.
До сих пор я пробовал цикл foreach в списке инструментов:
finalresults.forEach((tool){ tool.toollocation = distanceMatrix.elements[0].distance.text;});
, но очевидно, что это только добавит первое измерение расстояния к каждому из инструментов.
Можно ли как-нибудь перебрать каждый инструмент, а затем добавить расстояние от карты матрицы расстояний?Каждое расстояние будет последовательно с каждым инструментом в списке.