Исключение: RangeError (index): недопустимое значение: диапазон допустимых значений пуст: 0 - PullRequest
0 голосов
/ 22 февраля 2020

Я пытаюсь создать путь между двумя точками на карте, и я получаю маркеры в правильном положении, но путь не отображается из-за этой ошибки.

setPolylines() async 
{   
  List<PointLatLng> result = await
    polylinePoints.getRouteBetweenCoordinates(
      googleAPIKey,
      SOURCE_LOCATION.latitude, 
      SOURCE_LOCATION.longitude,
      DEST_LOCATION.latitude, 
      DEST_LOCATION.longitude
    );   

    if(result.isNotEmpty){      
      result.forEach((PointLatLng point){
        polylineCoordinates.add(
          LatLng(point.latitude, point.longitude));
      });
    }

    setState(() {
      Polyline polyline = Polyline(
        polylineId: PolylineId("poly"),
        color: Color.fromARGB(255, 40, 122, 198),
        points: polylineCoordinates
      );
      _polylines.add(polyline);    
    });
}

Необработанное исключение: исключение : RangeError (index): Неверное значение: Диапазон допустимых значений пуст: 0

Как мне исправить это?

Ответы [ 2 ]

0 голосов
/ 13 марта 2020

Вы получаете эту ошибку, потому что { "error_message": "This API project is not authorized to use this API.", "routes": [], "status": "REQUEST_DENIED" }

Обязательно включите API карты.

0 голосов
/ 22 февраля 2020

Попробуйте это.

 await
    polylinePoints.getRouteBetweenCoordinates(
      googleAPIKey,
      SOURCE_LOCATION.latitude, 
      SOURCE_LOCATION.longitude,
      DEST_LOCATION.latitude, 
      DEST_LOCATION.longitude
    ).then((result){

if(result.isNotEmpty){      
  result.forEach((PointLatLng point){
    polylineCoordinates.add(
      LatLng(point.latitude, point.longitude));
  });
}

setState(() {
  Polyline polyline = Polyline(
    polylineId: PolylineId("poly"),
    color: Color.fromARGB(255, 40, 122, 198),
    points: polylineCoordinates
  );
  _polylines.add(polyline);    
});
   });
...