private void MapViewMapSingleTap(object sender, UIGestureRecognizer e) { CGPoint location = e.LocationInView(View); PointShape position = ExtentHelper.ToWorldCoordinate(mapView.CurrentExtent, (float)location.X, (float)location.Y, (float)View.Frame.Width, (float)View.Frame.Height); routingLayer.Routes.Clear(); if (firstClick) { routingLayer.StartPoint = position; firstClick = false; } else { routingLayer.EndPoint = position; firstClick = true; } routingLayer.Routes.Clear(); if (routingLayer.StartPoint != null && routingLayer.EndPoint != null) { RoutingResult routingResult = routingEngine.GetRoute(routingLayer.StartPoint, routingLayer.EndPoint); routingLayer.Routes.Add(routingResult.Route); ShowTurnByTurnDirections(routingResult.RouteSegments, routingResult.Features); } layerOverlay.Refresh(); }
public void ShowRoute(MapPos startPos, MapPos stopPos) { // Run routing in background System.Threading.Tasks.Task.Run(() => { RoutingResult result = Routing.GetResult(startPos, stopPos); // Update response in UI thread RunOnUiThread(() => { if (result == null) { ContentView.Banner.Show("Routing failed"); return; } string text = Routing.GetMessage(result); ContentView.Banner.Show(text); Routing.Show(result); FeatureCollection collection = Routing.routeDataSource.GetFeatureCollection(); Search.FindAttractions(collection, (count) => { text = "Found " + count + " attractions. "; text += "Click on one to find out more about it"; RunOnUiThread(delegate { ContentView.Banner.Show(text); }); }); }); }); }
public string GetMessage(RoutingResult result) { string distance = "Your route is " + (int)(result.TotalDistance / 100) / 10f + "km"; string time = " (" + result.TotalTime.ConvertFromSecondsToHours() + ")"; return(distance + time); }
public void ShowRoute(MapPos startPos, MapPos stopPos) { // Run routing in background System.Threading.Tasks.Task.Run(() => { long time = Java.Lang.JavaSystem.CurrentTimeMillis(); RoutingResult result = Routing.GetResult(startPos, stopPos); // Update response in UI thread RunOnUiThread(() => { if (result == null) { Alert("Routing failed"); return; } Alert(Routing.GetMessage(result, time, Java.Lang.JavaSystem.CurrentTimeMillis())); Color lineColor = new Color(Colors.ActionBar); Routing.Show(result, lineColor); }); }); }
private void btnRoute_Click(object sender, EventArgs e) { ShapeFileFeatureSource featureSource = new ShapeFileFeatureSource(@"..\..\SampleData\Austinstreets.shp"); RoutingSource routingSource = new RtgRoutingSource(@"..\..\SampleData\routeDataForFastest.rtg"); RoutingEngine routingEngine = new RoutingEngine(routingSource, featureSource); RoutingResult routingResult = routingEngine.GetShortestPath(txtStartId.Text, txtEndId.Text); InMemoryFeatureLayer routingLayer = (InMemoryFeatureLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"]; winformsMap1.Overlays["RoutingOverlay"].Lock.EnterWriteLock(); try { routingLayer.InternalFeatures.Clear(); foreach (Feature feature in routingResult.Features) { routingLayer.InternalFeatures.Add(feature); } } finally { winformsMap1.Overlays["RoutingOverlay"].Lock.ExitWriteLock(); } winformsMap1.Refresh(); }
private void btnFindBestRoute_Click(object sender, EventArgs e) { LayerOverlay overlay = (LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]; RoutingLayer routingLayer = (RoutingLayer)overlay.Layers["RoutingLayer"]; Stopwatch watch = new Stopwatch(); watch.Start(); RoutingResult routingResult = routingEngine.GetRoute(routingLayer.StartPoint, routingLayer.StopPoints, int.Parse(txtIterations.Text)); watch.Stop(); // Render the route routingLayer.Routes.Clear(); routingLayer.Routes.Add(routingResult.Route); winformsMap1.Refresh(winformsMap1.Overlays["RoutingOverlay"]); routingLayer.StopPoints.Clear(); foreach (PointShape stop in routingResult.OrderedStops) { routingLayer.StopPoints.Add(stop); } routingLayer.ShowStopOrder = true; txtTimeUsed.Text = watch.ElapsedMilliseconds.ToString(CultureInfo.InvariantCulture) + " ms"; txtDistance.Text = routingResult.Distance.ToString(CultureInfo.InvariantCulture); winformsMap1.Refresh(overlay); }
public void ShowRoute(MapPos startPos, MapPos stopPos) { // Run routing in background System.Threading.Tasks.Task.Run(() => { long time = DateTime.Now.Millisecond; RoutingResult result = Routing.GetResult(startPos, stopPos); // Update response in UI thread InvokeOnMainThread(() => { if (result == null) { Alert("Routing failed"); return; } Alert(Routing.GetMessage(result, time, DateTime.Now.Millisecond)); Color darkGray = new Carto.Graphics.Color(50, 50, 50, 255); Routing.Show(result, darkGray); }); }); }
public void ShowRoute(MapPos startPos, MapPos stopPos) { // Run routing in background System.Threading.Tasks.Task.Run(() => { long time = Java.Lang.JavaSystem.CurrentTimeMillis(); RoutingResult result = Routing.GetResult(startPos, stopPos); // Update response in UI thread RunOnUiThread(() => { if (result == null) { Alert("Routing failed"); return; } Alert(Routing.GetMessage(result, time, Java.Lang.JavaSystem.CurrentTimeMillis())); Color darkGray = new Carto.Graphics.Color(Android.Graphics.Color.DarkGray); Routing.Show(result, darkGray); }); }); }
public string GetMessage(RoutingResult result, long start, long current) { string distance = "The route is " + (int)(result.TotalDistance / 100) / 10f + "km"; string time = "(" + result.TotalTime.ConvertFromSecondsToHours() + ")"; string calculation = " | Calculation: " + (start - current) + " ms"; return(distance + time + calculation); }
protected Line CreatePolyline(RoutingResult result, Color color) { LineStyleBuilder builder = new LineStyleBuilder(); builder.Color = color; builder.Width = 10; return(new Line(result.Points, builder.BuildStyle())); }
private void ShowTheShortestPath(RoutingLayer routingLayer) { RoutingSource routingSource = new RtgRoutingSource(Path.Combine(rootPath, "DallasWithOneWayRoad.rtg")); RoutingEngine routingEngine = new RoutingEngine(routingSource, featureSource); RoutingResult routingResult = routingEngine.GetRoute(txtStartId.Text, txtEndId.Text); routingLayer.Routes.Clear(); routingLayer.Routes.Add(routingResult.Route); }
// Creates a line from GraphHopper response protected Line CreatePolyline(MapPos start, MapPos end, RoutingResult result) { LineStyleBuilder lineStyleBuilder = new LineStyleBuilder(); lineStyleBuilder.Color = new Carto.Graphics.Color(Android.Graphics.Color.DarkGray); lineStyleBuilder.Width = 12; return(new Line(result.Points, lineStyleBuilder.BuildStyle())); }
// Creates a line from GraphHopper response protected Line CreatePolyline(MapPos start, MapPos end, RoutingResult result, Color color) { LineStyleBuilder lineStyleBuilder = new LineStyleBuilder(); lineStyleBuilder.Color = color; lineStyleBuilder.Width = 7; return(new Line(result.Points, lineStyleBuilder.BuildStyle())); }
private void Route() { RoutingResult routingResult = routingEngine.GetRoute(txtStartId.Text, txtEndId.Text); RoutingLayer routingLayer = (RoutingLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"]; routingLayer.Routes.Clear(); routingLayer.Routes.Add(routingResult.Route); winformsMap1.Refresh(winformsMap1.Overlays["RoutingOverlay"]); }
// creates Nutiteq line from GraphHopper response protected Line createPolyline(MapPos start, MapPos end, RoutingResult result) { LineStyleBuilder lineStyleBuilder = new LineStyleBuilder(); lineStyleBuilder.Color = new Nutiteq.Graphics.Color(Android.Graphics.Color.DarkGray); lineStyleBuilder.LineJointType = LineJointType.LineJointTypeRound; lineStyleBuilder.StretchFactor = 2; lineStyleBuilder.Width = 12; return(new Line(result.Points, lineStyleBuilder.BuildStyle())); }
private void btnFindPath_Click(object sender, EventArgs e) { routingEngine.RoutingSource = routingSource; routingLayer.Routes.Clear(); routingEngine.RoutingSource.Open(); routingResult = routingEngine.GetRoute(routingLayer.StartPoint, routingLayer.EndPoint); routingLayer.Routes.Add(routingResult.Route); winformsMap1.Refresh(winformsMap1.Overlays["RoutingOverlay"]); }
void cbmPrioritiy_SelectedIndexChanged(object sender, EventArgs e) { RoutingResult routingResult = routingEngine.GetRoute(txtStartId.Text, txtEndId.Text); RoutingLayer routingLayer = (RoutingLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"]; routingLayer.Routes.Clear(); routingLayer.Routes.Add(routingResult.Route); winformsMap1.CurrentExtent = new RectangleShape(-96.905564, 32.926216, -96.651506, 32.744942); winformsMap1.Refresh(winformsMap1.Overlays["RoutingOverlay"]); }
void cbmAlgorithm_SelectedIndexChanged(object sender, EventArgs e) { FeatureSource featureSource = new ShapeFileFeatureSource(Path.Combine(rootPath, "DallasCounty-4326.shp")); RoutingSource routingSource = new RtgRoutingSource(Path.Combine(rootPath, "DallasCounty-4326.shortest.rtg")); RoutingEngine routingEngine = new RoutingEngine(routingSource, GetAlgorithm(), featureSource); RoutingResult routingResult = routingEngine.GetRoute(txtStartId.Text, txtEndId.Text); RoutingLayer routingLayer = (RoutingLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"]; routingLayer.Routes.Clear(); routingLayer.Routes.Add(routingResult.Route); winformsMap1.Refresh(winformsMap1.Overlays["RoutingOverlay"]); }
private void btnRoute_Click(object sender, EventArgs e) { RoutingSource routingSource = new RtgRoutingSource(Path.Combine(rootPath, "DallasCounty-4326.shortest.rtg")); ShapeFileFeatureSource featureSource = new ShapeFileFeatureSource(Path.Combine(rootPath, "DallasCounty-4326.shp")); RoutingEngine routingEngine = new RoutingEngine(routingSource, featureSource); RoutingLayer routingLayer = (RoutingLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"]; RoutingResult routingResult = routingEngine.GetRoute(routingLayer.StartPoint, routingLayer.EndPoint); routingLayer.Routes.Clear(); routingLayer.Routes.Add(routingResult.Route); winformsMap1.Refresh(winformsMap1.Overlays["RoutingOverlay"]); }
private void btnRoute_Click(object sender, EventArgs e) { ShapeFileFeatureSource featureSource = new ShapeFileFeatureSource(Path.Combine(rootPath, "DallasCounty-4326.shp")); RoutingSource routingSource = new CustomRoutingSource(featureSource); RoutingEngine routingEngine = new RoutingEngine(routingSource, featureSource); RoutingResult routingResult = routingEngine.GetRoute(txtStartId.Text, txtEndId.Text); RoutingLayer routingLayer = (RoutingLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"]; routingLayer.Routes.Clear(); routingLayer.Routes.Add(routingResult.Route); winformsMap1.Refresh(winformsMap1.Overlays["RoutingOverlay"]); }
private void RenderPathBetweenPoints() { FeatureSource featureSource = new ShapeFileFeatureSource(@"..\..\SampleData\Austinstreets.shp"); RoutingSource routingSource = new RtgRoutingSource(@"..\..\SampleData\Austinstreets.rtg"); RoutingEngine routingEngine = new RoutingEngine(routingSource, featureSource); RoutingResult routingResult = null; InMemoryFeatureLayer stopLayer = (InMemoryFeatureLayer)((LayerOverlay)winformsMap1.Overlays["StopOverlay"]).Layers["StopLayer"]; if (stopLayer.InternalFeatures.Count > 2) { string startId = stopLayer.InternalFeatures[0].Id; string stopId = stopLayer.InternalFeatures[1].Id; string endId = stopLayer.InternalFeatures[2].Id; routingResult = routingEngine.GetRoute(startId, stopId); RoutingResult secondRoutingResult = routingEngine.GetRoute(stopId, endId); foreach (Feature item in secondRoutingResult.Features) { routingResult.Features.Add(item); } } else { routingResult = routingEngine.GetRoute("4716", "9638"); } //winformsMap1.Overlays["RoutingOverlay"].Lock.EnterWriteLock(); //try //{ InMemoryFeatureLayer inmemoryLayer = (InMemoryFeatureLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"]; inmemoryLayer.InternalFeatures.Clear(); foreach (Feature feature in routingResult.Features) { inmemoryLayer.InternalFeatures.Add(feature); } //} //finally //{ // winformsMap1.Overlays["RoutingOverlay"].Lock.ExitWriteLock(); //} winformsMap1.Overlays["RoutingOverlay"].Lock.IsDirty = true; winformsMap1.Refresh(); }
public void Show(RoutingResult result, Color lineColor) { routeDataSource.Clear(); startMarker.Visible = false; Line line = CreatePolyline(startMarker.Geometry.CenterPos, stopMarker.Geometry.CenterPos, result, lineColor); routeDataSource.Add(line); // Add instruction markers RoutingInstructionVector instructions = result.Instructions; for (int i = 0; i < instructions.Count; i++) { RoutingInstruction instruction = instructions[i]; MapPos position = result.Points[instruction.PointIndex]; CreateRoutePoint(position, instruction, routeDataSource); } }
public void ShowRoute(MapPos startPos, MapPos stopPos) { // Run routing in background System.Threading.Tasks.Task.Run(() => { RoutingResult result = Routing.GetResult(startPos, stopPos); InvokeOnMainThread(() => { if (result == null) { Alert("Routing failed. Have you downloaded offline package for the region?"); return; } Routing.Show(result); Alert(Routing.GetMessage(result)); }); }); }
private void btnRoute_Click(object sender, EventArgs e) { RoutingSource routingSource = new RtgRoutingSource(@"..\..\SampleData\AustinStreetFromOleDb.rtg"); RoutingEngine routingEngine = new RoutingEngine(routingSource, new DijkstraRoutingAlgorithm(), featureSource); RoutingResult routingResult = routingEngine.GetRoute(txtStartId.Text, txtEndId.Text); RoutingLayer routingLayer = (RoutingLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"]; winformsMap1.Overlays["RoutingOverlay"].Lock.EnterWriteLock(); try { routingLayer.Routes.Clear(); routingLayer.Routes.Add(routingResult.Route); } finally { winformsMap1.Overlays["RoutingOverlay"].Lock.ExitWriteLock(); } winformsMap1.Refresh(); }
public RoutingResult GetResult(MapPos startPos, MapPos stopPos) { MapPosVector poses = new MapPosVector(); poses.Add(startPos); poses.Add(stopPos); RoutingRequest request = new RoutingRequest(Projection, poses); RoutingResult result = null; try { result = Service.CalculateRoute(request); } catch (Exception e) { Console.WriteLine("Exception calculating route: " + e.Message); } return(result); }
public void Show(RoutingResult result) { routeDataSource.Clear(); routeInstructionSource.Clear(); var color = new Color(0, 122, 255, 225); Line line = CreatePolyline(result, color); routeDataSource.Add(line); // Add instruction markers RoutingInstructionVector instructions = result.Instructions; if (ShowTurns) { for (int i = 0; i < instructions.Count; i++) { RoutingInstruction instruction = instructions[i]; MapPos position = result.Points[instruction.PointIndex]; CreateRoutePoint(position, instruction, routeInstructionSource); } } }
public void ShowRoute(MapPos startPos, MapPos stopPos) { // Run routing in background System.Threading.Tasks.Task.Run(() => { RoutingResult result = Routing.GetResult(startPos, stopPos); // Update response in UI thread RunOnUiThread(() => { if (result == null) { Alert("Routing failed"); return; } Alert(Routing.GetMessage(result)); Routing.Show(result); RoutingComplete(); }); }); }
public void ShowRoute(MapPos startPos, MapPos stopPos) { // Run routing in background System.Threading.Tasks.Task.Run(() => { long time = DateTime.Now.Millisecond; RoutingResult result = null; try { result = Routing.GetResult(startPos, stopPos); } catch (Exception e) { Console.WriteLine(e.Message); } // Update response in UI thread long now = DateTime.Now.Millisecond; InvokeOnMainThread(() => { if (result == null) { Alert("Routing failed. Have you downloaded offline package for the region?"); return; } Alert(Routing.GetMessage(result, time, now)); Color lineColor = new Color(0, 122, 255, 255); Routing.Show(result, lineColor); }); }); }
private void Route() { RoutingLayer routingLayer = (RoutingLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"]; avoidableFeatureIds.Clear(); foreach (Feature feature in roadblocksLayer.InternalFeatures) { avoidableFeatureIds.Add(feature.Id); } routingLayer.Routes.Clear(); RoutingResult routingResult = routingEngine.GetRoute(routingLayer.StartPoint, routingLayer.EndPoint); if (routingResult.Features.Count == 0) { MessageBox.Show("No route exists!"); } else { routingLayer.Routes.Add(routingResult.Route); } winformsMap1.Refresh(winformsMap1.Overlays["RoutingOverlay"]); }
private void MapView_SingleTap(object sender, SingleTapMapViewEventArgs e) { routingLayer.Routes.Clear(); if (firstClick) { routingLayer.StartPoint = e.WorldPoint; firstClick = false; } else { routingLayer.EndPoint = e.WorldPoint; firstClick = true; } routingLayer.Routes.Clear(); if (routingLayer.StartPoint != null && routingLayer.EndPoint != null) { RoutingResult routingResult = routingEngine.GetRoute(routingLayer.StartPoint, routingLayer.EndPoint); routingLayer.Routes.Add(routingResult.Route); ShowTurnByTurnDirections(routingResult.RouteSegments, routingResult.Features); } layerOverlay.Refresh(); }
// Creates a line from GraphHopper response protected Line CreatePolyline(MapPos start, MapPos end, RoutingResult result, Color darkGray) { LineStyleBuilder lineStyleBuilder = new LineStyleBuilder(); lineStyleBuilder.Color = darkGray; lineStyleBuilder.Width = 12; return new Line(result.Points, lineStyleBuilder.BuildStyle()); }
public void Show(RoutingResult result, Color darkGray) { routeDataSource.Clear(); startMarker.Visible = false; Line line = CreatePolyline(startMarker.Geometry.CenterPos, stopMarker.Geometry.CenterPos, result, darkGray); routeDataSource.Add(line); // Add instruction markers RoutingInstructionVector instructions = result.Instructions; for (int i = 0; i < instructions.Count; i++) { RoutingInstruction instruction = instructions[i]; MapPos position = result.Points[instruction.PointIndex]; CreateRoutePoint(position, instruction, routeDataSource); } }
public string GetMessage(RoutingResult result, long start, long current) { string distance = "The route is " + (int)(result.TotalDistance / 100) / 10f + "km"; string time = "(" + result.TotalTime.ConvertFromSecondsToHours() + ")"; string calculation = " | Calculation: " + (current - start) + " ms"; return distance + time + calculation; }
void Done(RoutingResult result) { if (_rr != null) return; _rr = result; _completed = true; _done.Set (); if (_callback != null) _callback (this); }