2 years ago
#42117
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