2 years ago

#42117

test-img

Cool Vibes

How do you fix a error like this? in flutter

      static Future<DirectionDetails?> obtainDirectionsDetails(LatLng initialPosition, LatLng finalPosition) async {
    String directionURL = "https://maps.googleapis.com/maps/api/directions/json?destination=${finalPosition.latitude},${finalPosition.longitude}&origin=${initialPosition.latitude},${initialPosition.longitude}&key=$mapKey";
    var res = await RequestAssistant.getRequest(directionURL);

    if(res == "failed"){
      return null;
    }

    DirectionDetails directionDetails = DirectionDetails();

    directionDetails.encodedPoints = res["routes"][0]["overview_polyline"][0]["points"];

    directionDetails.distanceText = res["routes"][0]["legs"][0]["distance"]["text"];
    directionDetails.distanceValue = res["routes"][0]["legs"][0]["distance"]["value"];

    directionDetails.durationText = res["routes"][0]["legs"][0]["duration"]["text"];
    directionDetails.durationValue = res["routes"][0]["legs"][0]["duration"]["value"];

    return directionDetails;

  }
}

    Future<void> getPlaceDirection() async {
    var initialPos = await Provider.of<AppData>(context, listen: false).pickUpLocation;
    var finalPos =  await Provider.of<AppData>(context, listen: false).dropOffLocation;

    var pickUpLatLng =  LatLng(initialPos?.latitude ?? 0.0, initialPos?.longtitude ?? 0.0);
    var dropOffLatLng =  LatLng(finalPos?.latitude ?? 0.0, finalPos?.longtitude ?? 0.0);

    showDialog(
        context: context,
        builder: (BuildContext context) => ProgressDialog(message: "Please Wait...",)
    );

    DirectionDetails? details = await AssistantMethods.obtainDirectionsDetails(pickUpLatLng, dropOffLatLng);

    Navigator.pop(context);

    print("This is Encoded Points ::");
    print(details!.encodedPoints);

    PolylinePoints polylinePoints = PolylinePoints();
    List<PointLatLng> decodedPolylinePointsResult =  polylinePoints.decodePolyline(details.encodedPoints!);

    plineCordinates.clear();

    if(decodedPolylinePointsResult.isNotEmpty){
      decodedPolylinePointsResult.forEach((PointLatLng pointLatLng) {
        plineCordinates.add(LatLng(pointLatLng.latitude, pointLatLng.longitude));
      });
    }

    polylineSet.clear();

    setState(() {
      Polyline polyline = Polyline(
        color: Colors.pink,
        polylineId: PolylineId("PolylineID"),
        jointType: JointType.round,
        points: plineCordinates,
        width: 5,
        startCap: Cap.roundCap,
        endCap: Cap.roundCap,
        geodesic: true,
      );
      polylineSet.add(polyline);
    });
  }}

This is The Error:

E/flutter (31372): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: RangeError (index): Invalid value: Valid value range is empty: 0
E/flutter (31372): #0      List.[] (dart:core-patch/growable_array.dart:260:36)
E/flutter (31372): #1      AssistantMethods.obtainDirectionsDetails (package:rider_app/Assistants/assistantMethods.dart:48:51)
E/flutter (31372): <asynchronous suspension>
E/flutter (31372): #2      _MainScreenState.getPlaceDirection (package:rider_app/AllScreens/mainscreen.dart:361:33)
E/flutter (31372): <asynchronous suspension>

flutter

google-maps

dart

geolocation

location

0 Answers

Your Answer

Accepted video resources