public IEnumerable<LatLng> GetGeoRouteDirectionsPoints(GmapObject root) { var stepslist = new List<Step> (); var geoPointList = new List<LatLng> (); var leglist = GetLeg (root); //Get LegSteps from the route stepslist = leglist.steps; //Get Steps from the leg; if (stepslist != null && stepslist.Count > 0) { //Check actually there are steps //iterate through steps and collect route points foreach (var step in stepslist) { var startlocationNode = step.start_location; //Add Start points geoPointList.Add (new LatLng(startlocationNode.lat,startlocationNode.lng)); var polylinePoints = step.polyline.points; var coordinateEntity = GooglePoints.Decode (polylinePoints); foreach (var val in coordinateEntity) { geoPointList.Add (new LatLng (val.Latitude, val.Longitude)); } var endLocationNode = step.end_location; //Add End points geoPointList.Add (new LatLng(endLocationNode.lat,endLocationNode.lng)); } } return geoPointList; }
public Leg GetLeg(GmapObject root) { if (root != null) { var legs = root.routes.FirstOrDefault() != null ? root.routes.FirstOrDefault().legs : null; if (legs != null) { return legs.FirstOrDefault(); } } return null; }
public GmapObject GetDistaceRoute(LatLng start, LatLng end, string mode) { var rootobject = new GmapObject(); var baseAddress = "http://maps.googleapis.com/maps/"; var Url = this.GetGeoMapUrl(start.Latitude, start.Longitude, end.Latitude, end.Longitude); var client = new RestClient(baseAddress); var request = new RestRequest(Url); var response = client.Execute(request); try { var responseclass = client.Execute<GmapObject>(request); if (responseclass.ResponseStatus == ResponseStatus.Completed) { var result = responseclass.Data; rootobject =result; } } catch (Exception ex) { var errorMsg = ex.Message; } return rootobject; }
public GmapObject GetRouteByAddress(string fromAddress, string toAddress, string mode) { var rootobject = new GmapObject(); var baseAddress = "http://maps.googleapis.com/maps/"; string url = string.Format("api/directions/json?origin={0}&destination={1}&sensor=false&units=metric&mode=driving", fromAddress,toAddress); var Url = url; var client = new RestClient(baseAddress); var request = new RestRequest(Url); var response = client.Execute(request); try { var responseclass = client.Execute<GmapObject>(request); if (responseclass.ResponseStatus == ResponseStatus.Completed) { var result = responseclass.Data; rootobject =result; } } catch (Exception ex) { var errorMsg = ex.Message; } return rootobject; }
public async Task<IEnumerable<LatLng>> FindDirections(LatLng start, LatLng end, string mode) { var mc = new GMapDirection (); rootObject = mc.GetDistaceRoute(start, end, "driving"); var leg = mc.GetLeg(rootObject); GeoStartAddress = leg!=null? leg.start_address:""; GeoEndAddress = leg != null ? leg.end_address : ""; var duration = mc.GetGeoDuration(leg); var distance = mc.GetGeoDistance(leg); var pointsList = mc.GetGeoRouteDirectionsPoints (rootObject); return pointsList; }
public async Task<IEnumerable<LatLng>> FindDirectionsByAddress(string start, string end, string mode) { var mc = new GMapDirection (); rootObject = mc.GetRouteByAddress(start, end, "driving"); var leg = mc.GetLeg(rootObject); GeoStartAddress = leg!=null? leg.start_address:""; GeoEndAddress = leg != null ? leg.end_address : ""; var duration = mc.GetGeoDuration(leg); var distance = mc.GetGeoDistance(leg); Duration = string.Format ("{0} Time: {1} Mins ", distance.value, duration.value); _startLocation = new LatLng (leg.start_location.lat, leg.start_location.lng); _endLocation = new LatLng (leg.end_location.lat, leg.end_location.lng); var pointsList = mc.GetGeoRouteDirectionsPoints (rootObject); return pointsList; }