private async void Initialize() { // Create the tile layer ArcGISTiledLayer myLayer = new ArcGISTiledLayer(_serviceUri); // Load the layer await myLayer.LoadAsync(); // Create the basemap with the layer _basemap = new Map(new Basemap(myLayer)); // Assign the map to the mapview MyMapView.Map = _basemap; // Create a new symbol for the extent graphic // This is the red box that visualizes the extent for which tiles will be exported SimpleLineSymbol myExtentSymbol = new SimpleLineSymbol(SimpleLineSymbolStyle.Solid, Colors.Red, 2); // Create graphics overlay for the extent graphic and apply a renderer GraphicsOverlay extentOverlay = new GraphicsOverlay(); extentOverlay.Renderer = new SimpleRenderer(myExtentSymbol); // Add graphics overlay to the map view MyMapView.GraphicsOverlays.Add(extentOverlay); // Subscribe to changes in the mapview's viewpoint so the preview box can be kept in position MyMapView.ViewpointChanged += MyMapView_ViewpointChanged; }
private async void Initialize() { // Create the tile layer. try { ArcGISTiledLayer myLayer = new ArcGISTiledLayer(_serviceUri); // Load the layer. await myLayer.LoadAsync(); // Create the basemap with the layer. Map myMap = new Map(new Basemap(myLayer)) { // Set the min and max scale - export task fails if the scale is too big or small. MaxScale = 5000000, MinScale = 10000000 }; // Assign the map to the mapview. MyMapView.Map = myMap; // Create a new symbol for the extent graphic. // This is the red box that visualizes the extent for which tiles will be exported. SimpleLineSymbol myExtentSymbol = new SimpleLineSymbol(SimpleLineSymbolStyle.Solid, Color.Red, 2); // Create a graphics overlay for the extent graphic and apply a renderer. GraphicsOverlay extentOverlay = new GraphicsOverlay { Renderer = new SimpleRenderer(myExtentSymbol) }; // Add the graphics overlay to the map view. MyMapView.GraphicsOverlays.Add(extentOverlay); // Subscribe to changes in the mapview's viewpoint so the preview box can be kept in position. MyMapView.ViewpointChanged += MyMapView_ViewpointChanged; // Update the extent graphic so that it is valid before user interaction. UpdateMapExtentGraphic(); // Enable the export tile button once sample is ready. MyExportButton.IsEnabled = true; // Set viewpoint of the map. MyMapView.SetViewpoint(new Viewpoint(-4.853791, 140.983598, myMap.MinScale)); } catch (Exception ex) { ShowStatusMessage(ex.ToString()); } }
/// <summary> /// Will build the list of tpks inside local state folder and upate view of dialog with it. /// </summary> public async void GetFiles() { //Clear current _filenameValues.Clear(); // Get list of TPK files in, for the time being, the localFolder - this is not ideal StorageFolder localFolder = ApplicationData.Current.LocalFolder; IReadOnlyList <StorageFile> fileList = await localFolder.GetFilesAsync(); List <string> mapLayers = new List <string>(); foreach (var layer in esriMap.AllLayers) { mapLayers.Add(layer.Name); } foreach (StorageFile file in fileList) { if (file.FileType.ToLower() == ".tpk") { if (!mapLayers.Contains(Path.GetFileNameWithoutExtension(file.Name))) { var localUri = new Uri("file:\\" + file.Path); _basemapLayer = new ArcGISTiledLayer(localUri); await _basemapLayer.LoadAsync(); if (_basemapLayer.LoadStatus == Esri.ArcGISRuntime.LoadStatus.Loaded) { _basemapLayer.IsVisible = true; esriMap.Basemap.BaseLayers.Add(_basemapLayer); } } } } // Create cells for each of the sublayers foreach (ArcGISTiledLayer sublayer in esriMap.AllLayers) { Files layerFile = new Files(); layerFile.FileName = sublayer.Name; layerFile.FileVisible = sublayer.IsVisible; layerFile.FilePath = sublayer.Source.OriginalString; //Reverse order on screen to match what is available in SIG usually _filenameValues.Insert(0, layerFile); } RaisePropertyChanged("FilenameValues"); }
private async void Initialize() { try { // Create the tile layer. ArcGISTiledLayer myLayer = new ArcGISTiledLayer(_serviceUri); // Load the layer. await myLayer.LoadAsync(); // Create and show the basemap with the layer. _myMapView.Map = new Map(new Basemap(myLayer)) { // Set the min and max scale - export task fails if the scale is too big or small. MaxScale = 5000000, MinScale = 10000000 }; // Create a new symbol for the extent graphic. // This is the red box that visualizes the extent for which tiles will be exported. SimpleLineSymbol myExtentSymbol = new SimpleLineSymbol(SimpleLineSymbolStyle.Solid, Color.Red, 2); // Create a graphics overlay for the extent graphic and apply a renderer. GraphicsOverlay extentOverlay = new GraphicsOverlay { Renderer = new SimpleRenderer(myExtentSymbol) }; // Add the graphics overlay to the map view. _myMapView.GraphicsOverlays.Add(extentOverlay); // Update the graphic - needed in case the user decides not to interact before pressing the button. UpdateMapExtentGraphic(); // Enable the export button now that sample is ready. _exportTilesButton.Enabled = true; // Set viewpoint of the map. _myMapView.SetViewpoint(new Viewpoint(-4.853791, 140.983598, _myMapView.Map.MinScale)); } catch (Exception ex) { ShowStatusMessage(ex.ToString()); } }
private async void Initialize() { // Create the tile layer ArcGISTiledLayer myLayer = new ArcGISTiledLayer(_serviceUri); // Load the layer await myLayer.LoadAsync(); // Create the basemap with the layer _basemap = new Map(new Basemap(myLayer)); // Set the min and max scale - export task fails if the scale is too big or small _basemap.MaxScale = 5000000; _basemap.MinScale = 10000000; // Assign the map to the mapview MyMapView.Map = _basemap; // Create a new symbol for the extent graphic // This is the red box that visualizes the extent for which tiles will be exported SimpleLineSymbol myExtentSymbol = new SimpleLineSymbol(SimpleLineSymbolStyle.Solid, Colors.Red, 2); // Create graphics overlay for the extent graphic and apply a renderer GraphicsOverlay extentOverlay = new GraphicsOverlay(); extentOverlay.Renderer = new SimpleRenderer(myExtentSymbol); // Add graphics overlay to the map view MyMapView.GraphicsOverlays.Add(extentOverlay); // Subscribe to changes in the mapview's viewpoint so the preview box can be kept in position MyMapView.ViewpointChanged += MyMapView_ViewpointChanged; // Update the graphic - needed in case the user decides not to interact before pressing the button UpdateMapExtentGraphic(); // Enable the export button once sample is ready MyExportPreviewButton.IsEnabled = true; }
public async Task <Layer> LoadLayerAsync(string path) { try { ArcGISTiledLayer layer = new ArcGISTiledLayer(new Uri(path)) { Id = path, Name = path, MinScale = 8000000, MaxScale = 50 }; await layer.LoadAsync(); return(layer); } catch (Exception ex) { Debug.WriteLine(ex.Message); } return(null); }
private async void Initialize() { // Create a map and add it to the view MyMapView.Map = new Map(Basemap.CreateLightGrayCanvasVector()); // Load the tiled layer and get the path string rasterPath = GetRasterPath(); // Create a tile cache using the path to the raster TileCache myTileCache = new TileCache(rasterPath); // Create the tiled layer from the tile cache ArcGISTiledLayer tiledLayer = new ArcGISTiledLayer(myTileCache); // Try to load the tiled layer try { // Wait for the layer to load await tiledLayer.LoadAsync(); // Zoom to extent of the tiled layer await MyMapView.SetViewpointGeometryAsync(tiledLayer.FullExtent); } catch (Exception) { MessageBox.Show("Couldn't load the tile package, ending sample load."); return; } // Add the layer to the map MyMapView.Map.OperationalLayers.Add(tiledLayer); // Try to start Local Server try { // LocalServer must not be running when setting the data path. if (LocalServer.Instance.Status == LocalServerStatus.Started) { await LocalServer.Instance.StopAsync(); } // Set the local data path - must be done before starting. On most systems, this will be C:\EsriSamples\AppData. // This path should be kept short to avoid Windows path length limitations. string tempDataPathRoot = Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.Windows)).FullName; string tempDataPath = Path.Combine(tempDataPathRoot, "EsriSamples", "AppData"); Directory.CreateDirectory(tempDataPath); // CreateDirectory won't overwrite if it already exists. LocalServer.Instance.AppDataPath = tempDataPath; // Start the local server instance await LocalServer.Instance.StartAsync(); } catch (Exception ex) { var localServerTypeInfo = typeof(LocalMapService).GetTypeInfo(); var localServerVersion = FileVersionInfo.GetVersionInfo(localServerTypeInfo.Assembly.Location); MessageBox.Show($"Please ensure that local server {localServerVersion.FileVersion} is installed prior to using the sample. The download link is in the description. Message: {ex.Message}", "Local Server failed to start"); return; } // Get the path to the geoprocessing task string gpServiceUrl = GetGpPath(); // Create the geoprocessing service _gpService = new LocalGeoprocessingService(gpServiceUrl, GeoprocessingServiceType.AsynchronousSubmitWithMapServiceResult); // Take action once the service loads _gpService.StatusChanged += GpServiceOnStatusChanged; // Try to start the service try { // Start the service await _gpService.StartAsync(); } catch (Exception) { MessageBox.Show("geoprocessing service failed to start."); } }
private async void Initialize() { // Create a map and add it to the view MyMapView.Map = new Map(Basemap.CreateLightGrayCanvasVector()); // Load the tiled layer and get the path string rasterPath = await GetRasterPath(); // Create a tile cache using the path to the raster TileCache myTileCache = new TileCache(rasterPath); // Create the tiled layer from the tile cache ArcGISTiledLayer tiledLayer = new ArcGISTiledLayer(myTileCache); // Try to load the tiled layer try { // Wait for the layer to load await tiledLayer.LoadAsync(); // Zoom to extent of the tiled layer await MyMapView.SetViewpointGeometryAsync(tiledLayer.FullExtent); } catch (Exception) { MessageBox.Show("Couldn't load the tile package, ending sample load."); return; } // Add the layer to the map MyMapView.Map.OperationalLayers.Add(tiledLayer); // Try to start Local Server try { // Start the local server instance await LocalServer.Instance.StartAsync(); } catch (Exception ex) { MessageBox.Show(String.Format("Please ensure that local server is installed prior to using the sample. See instructions in readme.md or metadata.json. Message: {0}", ex.Message), "Local Server failed to start"); return; } // Get the path to the geoprocessing task string gpServiceUrl = await GetGpPath(); // Create the geoprocessing service _gpService = new LocalGeoprocessingService(gpServiceUrl, GeoprocessingServiceType.AsynchronousSubmitWithMapServiceResult); // Take action once the service loads _gpService.StatusChanged += GpServiceOnStatusChanged; // Try to start the service try { // Start the service await _gpService.StartAsync(); } catch (Exception) { MessageBox.Show("geoprocessing service failed to start."); } }