public static Position findClosestStation(double departlong, double lattitude) { WebRequestVelibApi test = new WebRequestVelibApi(); List <VelibModel> datas = test.Get(); // for example, using random Paris coordinate var sCoord = new GeoCoordinate(lattitude, departlong); int i = 0; GoogleModel Min = null; Position Arrival = null; foreach (VelibModel data in datas) { if (data.status.Equals("OPEN") && data.available_bikes > 0) { var eCoord = new GeoCoordinate(data.position.lat, data.position.lng); double distance = sCoord.GetDistanceTo(eCoord); if (i < 10 && distance <= 2000) { WebRequestGoogleApi google = new WebRequestGoogleApi(); GoogleModel result = google.Get(sCoord, eCoord); //Cherche la distance minimum if (i == 0) { Min = result; Arrival = new Position(eCoord.Latitude, eCoord.Longitude); } if ((Min != null) && (result.distance < Min.distance)) { Min = result; Arrival = new Position(eCoord.Latitude, eCoord.Longitude); } i++; } } } return(Arrival); }
public static string[] roadToDestination(Position depart, Position arrive) { WebRequestGoogleApi directions = new WebRequestGoogleApi(); return(directions.GetTrajectoryBike(depart, arrive)); }