This is my Code in AssistantMethods.dart
class AssistantMethods { static Future<String> searchCoordinateAddress(Position position, context) async { String placeAddress = ""; String st1, st2, st3, st4; String url = "https://maps.googleapis.com/maps/api/geocode/json? latlng=${position.latitude},${position.longitude}&key=$mapKey"; print(position.latitude); print(position.longitude); var response = await RequestAssistant.getRequest(url); print(response); if(response != "failed") { //placeAddress = response["results"][0]["formatted_address"]; st1 = placeAddress = response["results"][0]["address_components"][0]["long_name"]; st2 = placeAddress = response["results"][0]["address_components"][1]["long_name"]; st3 = placeAddress = response["results"][0]["address_components"][2]["long_name"]; st4 = placeAddress = response["results"][0]["address_components"][3]["long_name"]; placeAddress = st1 + ", " + st2 + ", " + st3 + ", " + st4; Address userPickUpAddress = new Address(); userPickUpAddress.longitude = position.longitude; userPickUpAddress.latitude = position.latitude; userPickUpAddress.placeName = placeAddress; Provider.of<AppData>(context, listen: false).updatePickUpLocationAddress(userPickUpAddress); } return placeAddress; } static Future<DirectionDetails> obtainPlaceDirectionDetails(LatLng initialPosition, LatLng finalPosition) async { String directionUrl = "https://maps.googleapis.com/maps/api/directions/json?
origin=${initialPosition.latitude},${initialPosition.longitude}&destination=${finalPosition.latitude}, ${finalPosition.longitude}&key=$mapKey";
var res = await RequestAssistant.getRequest(directionUrl); if(res == "failed") { return null; } DirectionDetails directionDetails = DirectionDetails(); directionDetails.encodedPoints = res["routes"][0]["overview_polyline"]["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; } }
This is my Code in MainScreen.dart:
Future<void> getPlaceDirection() async { var initialPos = Provider.of<AppData>(context, listen: false).pickUpLocation; var finalPos = Provider.of<AppData>(context, listen: false).dropOffLocation; var pickUpLatLng = LatLng(initialPos.latitude, initialPos.longitude); var dropOffLatLng = LatLng(finalPos.latitude, finalPos.longitude); showDialog( context: context, builder: (BuildContext context) => ProgressDialog(message: "Please wait...",) ); var details = await AssistantMethods.obtainPlaceDirectionDetails(pickUpLatLng, dropOffLatLng); Navigator.pop(context); print("This is Encoded Points ::"); print(details.encodedPoints); } }
Here is a part of my error log: .............................................................................. I/flutter (26872): This is your Address ::Guillamac's Bldg., Carlos P. Garcia Avenue, Tagbilaran City, Bohol W/IInputConnectionWrapper(26872): beginBatchEdit on inactive InputConnection W/IInputConnectionWrapper(26872): getTextBeforeCursor on inactive InputConnection W/IInputConnectionWrapper(26872): getTextAfterCursor on inactive
InputConnection W/IInputConnectionWrapper(26872): getSelectedText on inactive InputConnection W/IInputConnectionWrapper(26872): endBatchEdit on inactive InputConnection W/IInputConnectionWrapper(26872): beginBatchEdit on inactive InputConnection W/IInputConnectionWrapper(26872): endBatchEdit on inactive InputConnection I/Choreographer(26872): Skipped 36 frames! The application may be doing too much work on its main thread. W/Looper (26872): Slow Looper main: doFrame is 614ms late because of 1 msg I/flutter (26872): This is Drop Off Location :: I/flutter (26872): BQ Mall W/Looper (26872): Slow Looper main: doFrame is 472ms late because of 1 msg E/flutter (26872): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: RangeError (index): Invalid value: Valid value range is empty: 0 E/flutter (26872): #0 List.[] (dart:core- patch/growable_array.dart:254:60) E/flutter (26872): #1 AssistantMethods.obtainPlaceDirectionDetails (package:rider_app/Assistants/assistantMethods.dart:58:51) E/flutter (26872): E/flutter (26872): #2 _MainScreenState.getPlaceDirection enter code here
(package:rider_app/AllScreens/mainscreen.dart:294:19) E/flutter (26872): E/flutter (26872): #3 _MainScreenState.build. (package:rider_app/AllScreens/mainscreen.dart:202:27) E/flutter (26872): E/flutter (26872):
没有评论:
发表评论