Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 3
0
        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));
            }
        }
Ejemplo n.º 4
0
        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();
                }
            }
        }
Ejemplo n.º 5
0
        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());
        }
Ejemplo n.º 6
0
 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();
         }
     }));
 }
Ejemplo n.º 9
0
        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());
        }
Ejemplo n.º 10
0
        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));
        }
Ejemplo n.º 11
0
        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();
                }
            }
        }
Ejemplo n.º 13
0
        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;
                }
            }
        }
Ejemplo n.º 14
0
        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;
                }
            }));
        }
Ejemplo n.º 16
0
        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));
            }
        }
Ejemplo n.º 17
0
 public void OnRerouteAlong(DirectionsRoute p0)
 {
 }
 public void OnNewPrimaryRouteSelected(DirectionsRoute directionsRoute)
 {
     primaryRouteIndexTextView.Text = (routes.IndexOf(directionsRoute).ToString());
 }
Ejemplo n.º 19
0
 void ResetLocationEngine(DirectionsRoute directionsRoute)
 {
     mockLocationEngine.Deactivate();
     mockLocationEngine.SetRoute(directionsRoute);
 }
 public void OnNewPrimaryRouteSelected(DirectionsRoute directionsRoute)
 {
     route = directionsRoute;
 }
Ejemplo n.º 21
0
 public void OnNewPrimaryRouteSelected(DirectionsRoute p0)
 {
     route = p0;
 }
 public void OnRefresh(DirectionsRoute p0)
 {
     navigation.StartNavigation(p0);
     isRefreshing = false;
 }
Ejemplo n.º 23
0
 private void ResetLocationEngine(DirectionsRoute directionsRoute)
 {
     mockLocationEngine.Assign(directionsRoute);
     navigation.LocationEngine = mockLocationEngine;
 }
Ejemplo n.º 24
0
        private void StartNavigation(DirectionsRoute directionsRoute)
        {
            NavigationViewOptions navigationViewOptions = SetupOptions(directionsRoute);

            navigationView.StartNavigation(navigationViewOptions);
        }