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;
        }
        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();
                }
            }
        }