private void FetchRoute() { NavigationRoute.Builder builder = NavigationRoute.InvokeBuilder(this) .AccessToken(Mapbox.Mapboxsdk.Mapbox.AccessToken) .Origin(currentLocation) .Profile(GetRouteProfileFromSharedPreferences()) .Alternatives((Java.Lang.Boolean)true); foreach (Point wayPoint in wayPoints) { builder.AddWaypoint(wayPoint); } SetFieldsFromSharedPreferences(builder); builder.Build().GetRoute(new MyGetRouteCallback((routes) => { HideLoading(); route = routes[0]; if (Convert.ToInt32(route.Distance()) > 25) { launchRouteBtn.Enabled = true; map.DrawRoutes(routes); BoundCameraToRoute(); } else { Snackbar.Make(mapView, Resource.String.error_select_longer_route, Snackbar.LengthShort).Show(); } })); loading.Visibility = ViewStates.Visible; }
async void CalculateRoute() { Location userLocation = mapboxMap.MyLocation; if (userLocation == null) { System.Diagnostics.Debug.WriteLine("calculateRoute: User location is null, therefore, origin can't be set."); return; } Point origin = Point.FromLngLat(userLocation.Longitude, userLocation.Latitude); if (TurfMeasurement.Distance(origin, destination, TurfConstants.UnitMeters) < 50) { startRouteButton.Visibility = (ViewStates.Gone); return; } NavigationRoute.Builder navigationRouteBuilder = NavigationRoute.GetBuilder() .AccessToken(Mapbox.AccessToken); navigationRouteBuilder.Origin(origin); navigationRouteBuilder.Destination(destination); if (waypoint != null) { navigationRouteBuilder.AddWaypoint(waypoint); } var directions = await navigationRouteBuilder.Build().GetRouteAsync(); DirectionsRoute directionsRoute = directions.Routes()[0]; route = directionsRoute; navigationMapRoute.AddRoutes(directions.Routes()); }
void DrawRoute(DirectionsRoute route) { Java.Util.ArrayList points = new Java.Util.ArrayList(); IList <Com.Mapbox.Geojson.Point> coords = LineString.FromPolyline(route.Geometry(), Constants.Precision6).Coordinates(); foreach (Com.Mapbox.Geojson.Point point in coords) { points.Add(new LatLng(point.Latitude(), point.Longitude())); } if (points.IsEmpty == false) { if (polyline != null) { mapboxMap.RemovePolyline(polyline); } // Draw polyline on map polyline = mapboxMap .AddPolyline(new PolylineOptions() .AddAll(points) .InvokeColor(Color.ParseColor("#4264fb")) .InvokeWidth(5)); } }
private void HandleRoute(Square.Retrofit2.Response response, bool isOffRoute) { var body = response.Body() as DirectionsResponse; if (body == null) { return; } List <DirectionsRoute> routes = body.Routes().ToList(); if (routes.Any()) { route = routes[FIRST]; navigationMap.DrawRoute(route); if (isOffRoute) { navigation.StartNavigation(route); } else { startNavigationFab.Show(); } } }
private NavigationViewOptions SetupOptions(DirectionsRoute directionsRoute) { dropoffDialogShown = false; NavigationViewOptions.Builder options = NavigationViewOptions.InvokeBuilder(); options.DirectionsRoute(directionsRoute) .NavigationListener(this) .ProgressChangeListener(this) .RouteListener(this) .ShouldSimulateRoute(true); return(options.Build()); }
public void OnResponse(ICall p0, Response p1) { if (ValidRouteResponse(p1)) { UpdateLoadingTo(false); message.Text = "Launch Navigation"; launchNavigationFab.Visibility = ViewStates.Visible; launchNavigationFab.Show(); route = (p1.Body() as DirectionsResponse).Routes()[0]; if (isNavigationRunning) { LaunchNavigation(); } } }
public void OnResponse(ICall p0, Response p1) { if (ValidRouteResponse(p1)) { UpdateLoadingTo(false); launchNavigationFab.Show(); var body = p1.Body() as DirectionsResponse; route = body.Routes()[0]; mapRoute.AddRoutes(body.Routes()); if (isNavigationRunning) { LaunchNavigation(); } } }
private void FetchRoute(Point origin, Point destination) { NavigationRoute.InvokeBuilder(Context) .AccessToken(Mapbox.Mapboxsdk.Mapbox.AccessToken) .Origin(origin) .Destination(destination) .Build() .GetRoute(new SimplifiedCallback((response) => { var body = response.Body() as DirectionsResponse; if (body != null && body.Routes().Any()) { directionsRoute = body.Routes()[0]; StartNavigation(); } })); }
private void StartNavigation(DirectionsRoute directionsRoute) { NavigationViewOptions.Builder options = NavigationViewOptions.InvokeBuilder() .NavigationListener(this) .DirectionsRoute(directionsRoute) .ShouldSimulateRoute(true) .ProgressChangeListener(this) .InstructionListListener(this) .SpeechAnnouncementListener(this) .BannerInstructionsListener(this) .OfflineRoutingTilesPath(ObtainOfflineDirectory()) .OfflineRoutingTilesVersion(ObtainOfflineTileVersion()); SetBottomSheetCallback(options); SetupStyleFab(); SetupNightModeFab(); navigationView.StartNavigation(options.Build()); }
void drawRoute(DirectionsRoute route) { // Convert LineString coordinates into LatLng[] var lineString = LineString.FromPolyline(route.Geometry, Constants.OsrmPrecisionV5); var coordinates = lineString.Coordinates; LatLng[] points = new LatLng[coordinates.Count]; for (int i = 0; i < coordinates.Count; i++) { points[i] = new LatLng( coordinates[i].Latitude, coordinates[i].Longitude); } // Draw Points on MapView map.AddPolyline(new PolylineOptions() .Add(points) .SetColor(Android.Graphics.Color.Red) .SetWidth(5)); }
public void OnResponse(ICall p0, Response p1) { var call = p0; var response = p1; Timber.D(call.Request().Url().ToString()); if (response.Body() != null) { var body = response.Body() as DirectionsResponse; if (body.Routes().Any()) { DirectionsRoute route = body.Routes()[0]; DrawRoute(route); ResetLocationEngine(route); navigation.StartNavigation(route); mapboxMap.AddOnMapClickListener(this); tracking = true; } } }
public void OnResponse(ICall call, Response response) { if (ValidRouteResponse(response)) { HideLoading(); var directions = Android.Runtime.Extensions.JavaCast <DirectionsResponse>(response.Body()); route = directions.Routes()[0]; var distance = route.Distance(); if (distance.CompareTo(new Java.Lang.Double(25)) > 0) { launchRouteBtn.Enabled = (true); mapRoute.AddRoutes(directions.Routes()); BoundCameraToRoute(); } else { Snackbar.Make(mapView, "Please select a longer route", BaseTransientBottomBar.LengthShort).Show(); } } }
public void OnResponse(ICall call, Response response) { System.Diagnostics.Debug.WriteLine(call.Request().Url()); if (response.Body() != null) { var directions = Android.Runtime.Extensions.JavaCast <DirectionsResponse>(response.Body()); if (directions.Routes().Count > 0) { // Extract the route DirectionsRoute route = directions.Routes()[0]; // Draw it on the map DrawRoute(route); // Start mocking the new route ResetLocationEngine(route); navigation.StartNavigation(route); mapboxMap.SetOnMapClickListener(this); tracking = true; } } }
public DirectionsRoute GetRouteFromXML(string xml) { var linqDirections = XElement.Parse(xml); var status = linqDirections.Element("status").Value; var directionsRoute = new DirectionsRoute(); directionsRoute.Routes = new List <Route>(); directionsRoute.Status = status; var routesQuery = from route in linqDirections.Descendants("route") select route; foreach (var xElement in routesQuery) { directionsRoute.Routes.Add(GetRouteFromXElement(xElement)); } return(directionsRoute); }
private void FindRouteWith(LocationEngineResult result) { Location userLocation = result.LastLocation; if (userLocation == null) { Timber.D("calculateRoute: User location is null, therefore, origin can't be set."); return; } Point origin = Point.FromLngLat(userLocation.Longitude, userLocation.Latitude); if (TurfMeasurement.Distance(origin, destination, TurfConstants.UnitMeters) < 50) { startRouteButton.Visibility = ViewStates.Gone; return; } NavigationRoute.Builder navigationRouteBuilder = NavigationRoute.InvokeBuilder(this) .AccessToken(Mapbox.Mapboxsdk.Mapbox.AccessToken); navigationRouteBuilder.Origin(origin); navigationRouteBuilder.Destination(destination); if (waypoint != null) { navigationRouteBuilder.AddWaypoint(waypoint); } navigationRouteBuilder.EnableRefresh(true); navigationRouteBuilder.Build().GetRoute(new GetRouteCallback((response) => { if (response != null && response.Routes().Any()) { route = response.Routes()[0]; navigationMapRoute.AddRoutes(response.Routes()); startRouteButton.Visibility = ViewStates.Visible; } })); }
private void DrawRoute(DirectionsRoute route) { List <LatLng> points = new List <LatLng>(); List <Point> coords = LineString.FromPolyline(route.Geometry(), Mapbox.Core.Constants.Constants.Precision6).Coordinates().ToList(); foreach (Point point in coords) { points.Add(new LatLng(point.Latitude(), point.Longitude())); } if (points.Any()) { if (polyline != null) { mapboxMap.RemovePolyline(polyline); } Java.Util.ArrayList all = new Java.Util.ArrayList(points); polyline = mapboxMap.AddPolyline(new PolylineOptions() .AddAll(all) .InvokeColor(Color.ParseColor(GetString(Resource.String.blue))) .InvokeWidth(5)); } }
public void OnRerouteAlong(DirectionsRoute p0) { }
public void OnNewPrimaryRouteSelected(DirectionsRoute directionsRoute) { primaryRouteIndexTextView.Text = (routes.IndexOf(directionsRoute).ToString()); }
void ResetLocationEngine(DirectionsRoute directionsRoute) { mockLocationEngine.Deactivate(); mockLocationEngine.SetRoute(directionsRoute); }
public void OnNewPrimaryRouteSelected(DirectionsRoute directionsRoute) { route = directionsRoute; }
public void OnNewPrimaryRouteSelected(DirectionsRoute p0) { route = p0; }
public void OnRefresh(DirectionsRoute p0) { navigation.StartNavigation(p0); isRefreshing = false; }
private void ResetLocationEngine(DirectionsRoute directionsRoute) { mockLocationEngine.Assign(directionsRoute); navigation.LocationEngine = mockLocationEngine; }
private void StartNavigation(DirectionsRoute directionsRoute) { NavigationViewOptions navigationViewOptions = SetupOptions(directionsRoute); navigationView.StartNavigation(navigationViewOptions); }