예제 #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;
        }
예제 #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());
        }
        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;
                }
            }));
        }
예제 #4
0
 private void SetFieldsFromSharedPreferences(NavigationRoute.Builder builder)
 {
     builder.Language(GetLanguageFromSharedPreferences())
     .VoiceUnits(GetUnitTypeFromSharedPreferences());
 }