异常:RangeError(索引):无效值:有效值范围为空:0

时间:2020-02-22 03:27:41

标签: list google-maps flutter dart google-polyline

我正在尝试在地图上的两个位置之间创建路径,但我将标记放置在正确的位置,但是由于此错误而未绘制路径。

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(索引):无效值:有效值范围为空:0

我该如何解决?

3 个答案:

答案 0 :(得分:0)

尝试一下。

 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);    
});
   });

答案 1 :(得分:0)

由于{ "error_message": "This API project is not authorized to use this API.", "routes": [], "status": "REQUEST_DENIED" }

,您收到此错误

请确保启用地图api。

答案 2 :(得分:0)

该错误可能是因为未在您的 Google 控制台上启用 Directions API,在我的情况下,我还必须在启用它以显示路线后设置帐单。您还可以使用 300 美元的免费试用额度。