public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            // Create PackageManager instance for dealing with offline packages
            string folder = Utils.GetDocumentDirectory("mappackages");

            if (!Directory.Exists(folder))
            {
                Directory.CreateDirectory(folder);
                Console.WriteLine("Directory: Does not exist... Creating");
            }
            else
            {
                Console.WriteLine("Directory: Exists");
            }

            packageManager = new CartoPackageManager("nutiteq.osm", folder);

            packageManager.PackageManagerListener = PackageUpdateListener;

            packageManager.StartPackageListDownload();

            ContentView = new PackageManagerListView();
            View        = ContentView;
            ContentView.AddRows(packageList);
        }
        protected override void OnCreate(Android.OS.Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            ActionBar.SetDisplayHomeAsUpEnabled(true);
            ActionBar.SetBackgroundDrawable(new Android.Graphics.Drawables.ColorDrawable {
                Color = Colors.ActionBar
            });

            Title = GetType().GetTitle();

            // Create package manager
            File packageFolder = new File(ApplicationContext.GetExternalFilesDir(null), "regionpackages");

            if (!(packageFolder.Mkdir() || packageFolder.IsDirectory))
            {
                this.MakeToast("Could not create package folder!");
            }

            try
            {
                packageManager = new CartoPackageManager("nutiteq.osm", packageFolder.AbsolutePath);
            }
            catch (IOException e)
            {
                this.MakeToast("Exception: " + e);
                Finish();
            }

            // Initialize ListView
            SetContentView(Resource.Layout.List);
            packageAdapter   = new PackageManagerAdapter(this, ListView, Resource.Layout.package_item_row, packageArray);
            ListView.Adapter = packageAdapter;
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            // Set packaged map controller button
            MenuButton = new MenuButton("icons/icon_map.png", new CGRect(0, 0, 30, 30));
            NavigationItem.RightBarButtonItem = MenuButton;

            // Create PackageManager instance for dealing with offline packages
            string folder = Utils.GetDocumentDirectory("regionpackages");

            if (!Directory.Exists(folder))
            {
                Directory.CreateDirectory(folder);
                Console.WriteLine("Directory: Does not exist... Creating");
            }
            else
            {
                Console.WriteLine("Directory: Exists");
            }

            packageManager = new CartoPackageManager("nutiteq.osm", folder);

            ContentView = new PackageManagerListView();
            View        = ContentView;
            ContentView.AddRows(packageList);
        }
        protected void AddOfflineBaseLayer(CartoPackageManager manager, CartoBaseMapStyle style)
        {
            // Initialize map
            var baseLayer = new CartoOfflineVectorTileLayer(manager, style);

            MapView.Layers.Add(baseLayer);
        }
Example #5
0
        public void SetOfflineMode(CartoPackageManager manager)
        {
            System.Threading.Tasks.Task.Run(delegate
            {
                if (onlineLayer != null)
                {
                    MapView.Layers.Remove((onlineLayer));
                }

                if (offlineLayer == null)
                {
                    offlineLayer            = new CartoOfflineVectorTileLayer(manager, CartoBaseMapStyle.CartoBasemapStyleVoyager);
                    offlineLayer.Preloading = true;
                }

                if (MapView.Layers.Count == 0)
                {
                    MapView.Layers.Add(offlineLayer);
                }
                else
                {
                    MapView.Layers.Insert(0, offlineLayer);
                }
            });
        }
        public bool OnMenuItemClick(IMenuItem item)
        {
            // Using static global variable to pass data. Avoid this in your app (memory leaks etc)!
            Manager = context.packageManager;

            Intent intent = new Intent(context, typeof(PackagedMapActivity));
            context.StartActivity(intent);

            return true;
        }
        public bool OnMenuItemClick(IMenuItem item)
        {
            // Using static global variable to pass data. Avoid this in your app (memory leaks etc)!
            Manager = context.packageManager;

            Intent intent = new Intent(context, typeof(PackagedMapActivity));

            context.StartActivity(intent);

            return(true);
        }
        public static void StartBboxDownload(CartoPackageManager packageManager)
        {
            // Bounding box download can be done now
            // For the country package download see OnPackageListUpdated in PackageListener

            //string bbox = "bbox(-0.8164,51.2382,0.6406,51.7401)"; // London (approx. 30MB)
            string bbox = "bbox(-73.581182, 41.013, -73.5811, 41.013503)";

            if (packageManager.GetLocalPackage(bbox) == null)
            {
                packageManager.StartPackageDownload(bbox);
            }
        }
        public static void InitializePackageManager(string packageFolder,
                                                    string importPackagePath, IMapView mapView, string downloadedPackage)
        {
            // Offline base layer

            // Define listener, definition is in same class above
            var packageManager = new CartoPackageManager("nutiteq.osm", packageFolder);

            packageManager.PackageManagerListener = new PackageListener(packageManager, downloadedPackage);

            // Download new package list only if it is older than 24h
            // Note: this is only needed if pre-made packages are used
            if (packageManager.ServerPackageListAge > 24 * 60 * 60)
            {
                packageManager.StartPackageListDownload();
            }

            // Start manager - mandatory
            packageManager.Start();

            // Import initial package
            if (packageManager.GetLocalPackage("world0_4") == null)
            {
                packageManager.StartPackageImport("world0_4", 1, importPackagePath);
            }

            // Now can add vector map as layer
            // Define styling for vector map
            BinaryData          styleBytes        = AssetUtils.LoadAsset("nutibright-v2a.zip");
            MBVectorTileDecoder vectorTileDecoder = null;

            if (styleBytes != null)
            {
                // Create style set
                var vectorTileStyleSet = new CompiledStyleSet(new ZippedAssetPackage(styleBytes));
                vectorTileDecoder = new MBVectorTileDecoder(vectorTileStyleSet);
            }
            else
            {
                Log.Error("Failed to load style data");
            }

            // Create online base layer (no package download needed then). Use vector style from assets (osmbright.zip)
            // comment in to use online map. Packagemanager stuff is not needed then

            //VectorTileLayer baseLayer = new NutiteqOnlineVectorTileLayer("osmbright.zip");

            var baseLayer = new VectorTileLayer(new PackageManagerTileDataSource(packageManager), vectorTileDecoder);

            mapView.Layers.Add(baseLayer);
        }
Example #10
0
        public BasePackageManagerClient(string path)
        {
            Listener = new PackageListener();

            if (path == null)
            {
                // Path can be null when we don't want to use the package manager,
                // such as in Online Routing and Route Search,
                // but they still utilize a Routing.cs, that inherits from this class
                return;
            }

            Manager = new CartoPackageManager(Source, path);
        }
Example #11
0
        public void SetOfflineMode(CartoPackageManager manager)
        {
            if (onlineLayer != null)
            {
                MapView.Layers.Remove((onlineLayer));
            }

            if (offlineLayer == null)
            {
                offlineLayer            = new CartoOfflineVectorTileLayer(manager, CartoBaseMapStyle.CartoBasemapStyleVoyager);
                offlineLayer.Preloading = true;
            }

            MapView.Layers.Add(offlineLayer);
        }
        protected override void OnCreate(Android.OS.Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            ContentView = new OfflineRoutingView(this);
            SetContentView(ContentView);

            Initialize(ContentView.MapView);

            RoutingPackageManager = Routing.PackageManager;

            // Create offline routing service connected to package manager
            Routing.Service = new PackageManagerRoutingService(RoutingPackageManager);

            Alert("This sample uses an online map, but downloads routing packages");

            Alert("Click on the menu to see a list of countries that can be downloaded");
        }
Example #13
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            Menu       = new CityChoiceMenu();
            Menu.Items = BoundingBoxes.List;

            MenuButton = new MenuButton("icons/icon_more.png", new CGRect(0, 10, 20, 30));
            NavigationItem.RightBarButtonItem = MenuButton;

            string folder = CreateFolder("citypackages");

            SetStatusLabel();

            packageManager = new CartoPackageManager("nutiteq.osm", folder);

            SetBaseLayer();
        }
        protected override void OnCreate(Android.OS.Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            Title = GetType().GetTitle();
            ActionBar.Subtitle = GetType().GetDescription();

            ContentView = new BasicPackageManagerView(this);
            SetContentView(ContentView);

            string folder = CreateFolder("citypackages");

            manager = new CartoPackageManager("nutiteq.osm", folder);

            ContentView.Menu.Items = BoundingBoxes.List;

            ContentView.SetBaseLayer(manager);

            Alert("Choose a city from the menu to download its bounding box");
        }
        protected override void OnCreate(Android.OS.Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            Title = GetType().GetTitle();
            ActionBar.Subtitle = GetType().GetDescription();

            ContentView = new BasicPackageManagerView(this);
            SetContentView(ContentView);

            string folder = CreateFolder("citypackages");

            manager = new CartoPackageManager("nutiteq.osm", folder);

            ContentView.Menu.Items = BoundingBoxes.List;

            ContentView.SetBaseLayer(manager);

            Alert("Choose a city from the menu to download its bounding box");
        }
Example #16
0
        protected override void OnCreate(Android.OS.Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            ContentView = new OfflineRoutingView(this);
            SetContentView(ContentView);

            Initialize(ContentView.MapView);

            RoutingPackageManager = Routing.PackageManager;

            // Routing packages are as compact as possible,
            // so we create a second package manager to download region packages that contain names
            // This is only necessary for displaying them in a list. Download is by id
            MapPackageManager = new CartoPackageManager("nutiteq.osm", Routing.CreateFolder("regionpackages"));

            // Create offline routing service connected to package manager
            Routing.Service = new PackageManagerRoutingService(RoutingPackageManager);

            Alert("This sample uses an online map, but downloads routing packages");

            Alert("Click on the menu to see a list of countries that can be downloaded");
        }
        protected override void OnCreate(Android.OS.Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Register license
            MapView.RegisterLicense(LICENSE, ApplicationContext);

            // Create package manager
            File packageFolder = new File(ApplicationContext.GetExternalFilesDir(null), "mappackages");

            if (!(packageFolder.Mkdir() || packageFolder.IsDirectory))
            {
                this.MakeToast("Could not create package folder!");
            }

            try
            {
                packageManager = new CartoPackageManager("nutiteq.osm", packageFolder.AbsolutePath);
            }
            catch (IOException e)
            {
                this.MakeToast("Exception: " + e);
                Finish();
            }

            packageManager.PackageManagerListener = PackageUpdateListener;

            packageManager.StartPackageListDownload();

            // Initialize ListView
            SetContentView(Resource.Layout.List);

            packageAdapter   = new PackageManagerAdapter(this, Resource.Layout.package_item_row, packageArray);
            ListView.Adapter = packageAdapter;

            ActionBar.SetDisplayHomeAsUpEnabled(true);
        }
 protected void AddOfflineBaseLayer(CartoPackageManager manager, CartoBaseMapStyle style)
 {
     // Initialize map
     var baseLayer = new CartoOfflineVectorTileLayer(manager, style);
     MapView.Layers.Add(baseLayer);
 }
 public PackagedMapController(CartoPackageManager manager)
 {
     this.manager = manager;
 }
 public PackagedMapController(CartoPackageManager manager)
 {
     this.manager = manager;
 }
        protected override void OnCreate(Android.OS.Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            ContentView = new OfflineRoutingView(this);
            SetContentView(ContentView);

            Initialize(ContentView.MapView);

            RoutingPackageManager = Routing.PackageManager;

            // Create offline routing service connected to package manager
            Routing.Service = new PackageManagerRoutingService(RoutingPackageManager);

            Alert("This sample uses an online map, but downloads routing packages");

            Alert("Click on the menu to see a list of countries that can be downloaded");
        }