/// <summary> /// Generate random route /// </summary> private void CreateRoute() { var latLon = _initLatLon; var previousLatLon = _initLatLon; // Get liters var liters = double.Parse(TxLiters.Text, System.Globalization.NumberStyles.Any); // Get consumption var consumption = double.Parse(TxConsumption.Text, System.Globalization.NumberStyles.Any); // Route instance _route = new Route(new List<GLatLng>(), liters, consumption); // Create A point GMapControl.Add(new GMarkerWrapper(latLon, "A", Color.DarkMagenta)); // Add initial point to route _route.AddPoint(latLon); // Save initial distance in the current latlon _route.SaveRemainingDistance(latLon); var i = 0; do { // Generate random route changing his lat or lan depending the condition latLon = i % 2 == 0 ? latLon.GetRandomLon(20000, 40000) : latLon.GetRandomLat(20000, 40000); // Add to points list _route.AddPoint(latLon); // Get remaining distance in this latlon _route.CalculateRemainigDistance(latLon, previousLatLon); // Save remaining distance in the current latlon _route.SaveRemainingDistance(latLon); previousLatLon = latLon; i++; } while (_initLatLon.distanceFrom(latLon) <= 230000); // Create B point GMapControl.Add(new GMarkerWrapper(latLon, "B", Color.DarkMagenta)); // Create route GMapControl.Add(_route); }