private async void Initialize() { // Create new map with the dark gray canvas basemap Map myMap = new Map(Basemap.CreateDarkGrayCanvasVector()); // Create a Uri to the image service raster var myUri = new Uri("http://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer"); // Create new image service raster from the Uri ImageServiceRaster myImageServiceRaster = new ImageServiceRaster(myUri); // Load the image service raster await myImageServiceRaster.LoadAsync(); // Get the service information (aka. metadata) about the image service raster ArcGISImageServiceInfo myArcGISImageServiceInfo = myImageServiceRaster.ServiceInfo; // Create a new raster layer from the image service raster RasterLayer myRasterLayer = new RasterLayer(myImageServiceRaster); // Add the raster layer to the maps layer collection myMap.Basemap.BaseLayers.Add(myRasterLayer); // Assign the map to the map view MyMapView.Map = myMap; // Zoom the map to the extent of the image service raster (which also the extent of the raster layer) await MyMapView.SetViewpointGeometryAsync(myArcGISImageServiceInfo.FullExtent); // NOTE: The sample zooms to the extent of the ImageServiceRaster. Currently the ArcGIS Runtime does not // support zooming a RasterLayer out beyond 4 times it's published level of detail. The sample uses // MapView.SetViewpointCenterAsync() method to ensure the image shows when the app starts. You can see // the effect of the image service not showing when you zoom out to the full extent of the image and beyond. } }
private async void Initialize() { // Create new map with the dark gray canvas basemap. Map myMap = new Map(Basemap.CreateDarkGrayCanvasVector()); // Create a Uri to the image service raster. (NOTE: iOS applications require the use of Uri's to be https:// and not http://) Uri myUri = new Uri("https://gis.ngdc.noaa.gov/arcgis/rest/services/bag_hillshades/ImageServer"); // Create new image service raster from the Uri. ImageServiceRaster myImageServiceRaster = new ImageServiceRaster(myUri); // Load the image service raster. await myImageServiceRaster.LoadAsync(); // Create a new raster layer from the image service raster. RasterLayer myRasterLayer = new RasterLayer(myImageServiceRaster); // Add the raster layer to the maps layer collection. myMap.Basemap.BaseLayers.Add(myRasterLayer); // Assign the map to the map view. MyMapView.Map = myMap; // zoom in to the San Francisco Bay. await MyMapView.SetViewpointCenterAsync(new MapPoint(-13643095.660131, 4550009.846004, SpatialReferences.WebMercator), 100000); }
private async Task <Layer> GetSlopeLayerAsync() { try { AuthenticationManager.Current.ChallengeHandler = new ChallengeHandler(CredentialService.CreateCredential); var uri = new Uri("https://geodata.skogsstyrelsen.se/arcgis/rest/services/Publikt/Lutning/ImageServer"); ImageServiceRaster imageServiceRaster = new ImageServiceRaster(uri); await imageServiceRaster.LoadAsync(); RasterLayer rasterLayer = new RasterLayer(imageServiceRaster) { Id = LayerConstansts.SlopeLayerId, IsVisible = false }; return(rasterLayer); } catch (Exception ex) { Debug.WriteLine(ex.Message); } return(null); }
private async Task LoadRenderingRules() { // Create a new image service raster from the Uri. ImageServiceRaster imageServiceRaster = new ImageServiceRaster(_myUri); try { // Load the image service raster. await imageServiceRaster.LoadAsync(); // Get the ArcGIS image service info (metadata) from the image service raster. ArcGISImageServiceInfo arcGISImageServiceInfo = imageServiceRaster.ServiceInfo; // Get the full extent envelope of the image service raster (the Charlotte, NC area). Envelope myEnvelope = arcGISImageServiceInfo.FullExtent; // Define a new view point from the full extent envelope. Viewpoint viewPoint = new Viewpoint(myEnvelope); // Zoom to the area of the full extent envelope of the image service raster. await _myMapView.SetViewpointAsync(viewPoint); // Get the rendering rule info (i.e. definitions of how the image should be drawn) info from the image service raster. _renderRuleInfos = arcGISImageServiceInfo.RenderingRuleInfos; } catch (Exception e) { new UIAlertView("Error", e.ToString(), (IUIAlertViewDelegate)null, "OK", null).Show(); } }
private void OnChangeRenderingRuleMenuItemClicked(object sender, PopupMenu.MenuItemClickEventArgs e) { // Get the rendering rule from the selected item string selectedRenderingRuleType = e.Item.TitleCondensedFormatted.ToString(); // Loop through each rendering rule info in the image service raster foreach (RenderingRuleInfo myRenderingRuleInfo in _myReadOnlyListRenderRuleInfos) { // Get the name of the rendering rule info string myRenderingRuleName = myRenderingRuleInfo.Name; // If the name of the rendering rule info matches what was chosen by the user, proceed if (myRenderingRuleName == selectedRenderingRuleType) { // Create a new rendering rule from the rendering rule info RenderingRule myRenderingRule = new RenderingRule(myRenderingRuleInfo); // Create a new image service raster ImageServiceRaster myImageServiceRaster = new ImageServiceRaster(_myUri) { // Set the image service raster's rendering rule to the rendering rule created earlier RenderingRule = myRenderingRule }; // Create a new raster layer from the image service raster RasterLayer myRasterLayer = new RasterLayer(myImageServiceRaster); // Add the raster layer to the operational layers of the map view _myMapView.Map.OperationalLayers.Add(myRasterLayer); } } }
private async void Initialize() { // Create new map with the dark gray canvas basemap. Map myMap = new Map(Basemap.CreateDarkGrayCanvasVector()); // Create a URI to the image service raster. Uri uri = new Uri("https://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer"); // Create new image service raster from the URI. ImageServiceRaster imageServiceRaster = new ImageServiceRaster(uri); // Load the image service raster. await imageServiceRaster.LoadAsync(); // Get the service information (aka. metadata) about the image service raster. ArcGISImageServiceInfo arcGISImageServiceInfo = imageServiceRaster.ServiceInfo; // Create a new raster layer from the image service raster. RasterLayer rasterLayer = new RasterLayer(imageServiceRaster); // Add the raster layer to the maps layer collection. myMap.Basemap.BaseLayers.Add(rasterLayer); // Assign the map to the map view. _myMapView.Map = myMap; // Zoom the map to the extent of the image service raster (which also the extent of the raster layer). await _myMapView.SetViewpointGeometryAsync(arcGISImageServiceInfo.FullExtent); }
private void _segmentControl_ValueChanged(object sender, EventArgs e) { // Get the index number of the user choice of render rule names nint selectedSegmentId = (sender as UISegmentedControl).SelectedSegment; // Get the rendering rule info name from the UISegmentedControl that was chosen by the user string myRenderingRuleInfoName = (sender as UISegmentedControl).TitleAt(selectedSegmentId); // Loop through each rendering rule info in the image service raster foreach (RenderingRuleInfo myRenderingRuleInfo in _myReadOnlyListRenderRuleInfos) { // Get the name of the rendering rule info string myRenderingRuleName = myRenderingRuleInfo.Name; // If the name of the rendering rule info matches what was chosen by the user, proceed if (myRenderingRuleName == myRenderingRuleInfoName) { // Create a new rendering rule from the rendering rule info RenderingRule myRenderingRule = new RenderingRule(myRenderingRuleInfo); // Create a new image service raster ImageServiceRaster myImageServiceRaster2 = new ImageServiceRaster(_myUri); // Set the image service raster's rendering rule to the rendering rule created earlier myImageServiceRaster2.RenderingRule = myRenderingRule; // Create a new raster layer from the image service raster RasterLayer myRasterLayer = new RasterLayer(myImageServiceRaster2); // Add the raster layer to the operational layers of the map view _myMapView.Map.OperationalLayers.Add(myRasterLayer); } } }
private async Task ChangeRenderingRuleAsync() { // Display a picker to the user to choose among the available rendering rules for the image service raster string myRenderingRuleInfoName = await DisplayActionSheet("Select a Rendering Rule", "Cancel", null, _names.ToArray()); // Loop through each rendering rule info in the image service raster foreach (RenderingRuleInfo myRenderingRuleInfo in _myReadOnlyListRenderRuleInfos) { // Get the name of the rendering rule info string myRenderingRuleName = myRenderingRuleInfo.Name; // If the name of the rendering rule info matches what was chosen by the user, proceed if (myRenderingRuleName == myRenderingRuleInfoName) { // Create a new rendering rule from the rendering rule info RenderingRule myRenderingRule = new RenderingRule(myRenderingRuleInfo); // Create a new image service raster ImageServiceRaster myImageServiceRaster = new ImageServiceRaster(_myUri); // Set the image service raster's rendering rule to the rendering rule created earlier myImageServiceRaster.RenderingRule = myRenderingRule; // Create a new raster layer from the image service raster RasterLayer myRasterLayer = new RasterLayer(myImageServiceRaster); // Add the raster layer to the operational layers of the map view MyMapView.Map.OperationalLayers.Add(myRasterLayer); } } }
/// <summary> /// Called when a rendering rule info name is changed in the combo box /// </summary> private void comboBox_RenderingRuleChooser_SelectionChanged(object sender, SelectionChangedEventArgs e) { // Loop through each rendering rule info in the image service raster foreach (RenderingRuleInfo myRenderingRuleInfo in _myReadOnlyListRenderRuleInfos) { // Get the name of the rendering rule info string myRenderingRuleName = myRenderingRuleInfo.Name; // If the name of the rendering rule info matches what was chosen in the combo box, proceed if (myRenderingRuleName == (string)RenderingRuleChooser.SelectedItem) { // Create a new rendering rule from the rendering rule info RenderingRule myRenderingRule = new RenderingRule(myRenderingRuleInfo); // Create a new image service raster ImageServiceRaster myImageServiceRaster = new ImageServiceRaster(_myUri) { // Set the image service raster's rendering rule to the rendering rule created earlier RenderingRule = myRenderingRule }; // Create a new raster layer from the image service raster RasterLayer myRasterLayer = new RasterLayer(myImageServiceRaster); // Add the raster layer to the operational layers of the map view MyMapView.Map.OperationalLayers.Add(myRasterLayer); } } }
private async void Initialize() { // Assign a new map to the MapView MyMapView.Map = new Map { // Set the basemap to Streets Basemap = new Basemap(BasemapStyle.ArcGISStreets) }; // Create a new image service raster from the Uri ImageServiceRaster myImageServiceRaster = new ImageServiceRaster(_myUri); try { // Load the image service raster await myImageServiceRaster.LoadAsync(); // Get the ArcGIS image service info (metadata) from the image service raster ArcGISImageServiceInfo myArcGISImageServiceInfo = myImageServiceRaster.ServiceInfo; // Get the full extent envelope of the image service raster (the Charlotte, NC area) Envelope myEnvelope = myArcGISImageServiceInfo.FullExtent; // Define a new view point from the full extent envelope Viewpoint myViewPoint = new Viewpoint(myEnvelope); // Zoom to the area of the full extent envelope of the image service raster await MyMapView.SetViewpointAsync(myViewPoint); // Get the rendering rule info (i.e. definitions of how the image should be drawn) info from the image service raster _myReadOnlyListRenderRuleInfos = myArcGISImageServiceInfo.RenderingRuleInfos; // Loop through each rendering rule info foreach (RenderingRuleInfo myRenderingRuleInfo in _myReadOnlyListRenderRuleInfos) { // Get the name of the rendering rule info string myRenderingRuleName = myRenderingRuleInfo.Name; // Add the name of the rendering rule info into the list of names _names.Add(myRenderingRuleName); } // Call the function to display the image service raster based up on user choice of rendering rules await ChangeRenderingRuleAsync(); } catch (Exception e) { await Application.Current.MainPage.DisplayAlert("Error", e.ToString(), "OK"); } }
private async void Initialize() { // Assign a new map to the MapView _myMapView.Map = new Map { // Set the basemap to Streets Basemap = Basemap.CreateStreets() }; // Create a new image service raster from the Uri ImageServiceRaster myImageServiceRaster = new ImageServiceRaster(_myUri); try { // Load the image service raster await myImageServiceRaster.LoadAsync(); // Get the ArcGIS image service info (metadata) from the image service raster ArcGISImageServiceInfo myArcGISImageServiceInfo = myImageServiceRaster.ServiceInfo; // Get the full extent envelope of the image service raster (the Charlotte, NC area) Envelope myEnvelope = myArcGISImageServiceInfo.FullExtent; // Define a new view point from the full extent envelope Viewpoint myViewPoint = new Viewpoint(myEnvelope); // Zoom to the area of the full extent envelope of the image service raster await _myMapView.SetViewpointAsync(myViewPoint); // Get the rendering rule info (i.e. definitions of how the image should be drawn) info from the image service raster _myReadOnlyListRenderRuleInfos = myArcGISImageServiceInfo.RenderingRuleInfos; // Loop through each rendering rule info foreach (RenderingRuleInfo myRenderingRuleInfo in _myReadOnlyListRenderRuleInfos) { // Get the name of the rendering rule info string myRenderingRuleName = myRenderingRuleInfo.Name; // Add the name of the rendering rule info to the list of names _names.Add(myRenderingRuleName); } // Invoke the button for the user to change the rendering rule of the image service raster OnChangeRenderingRuleClicked(_renderingRulesButton, null); } catch (Exception e) { new AlertDialog.Builder(this).SetMessage(e.ToString()).SetTitle("Error").Show(); } }
private async void Initialize() { // Assign a new map to the MapView MyMapView.Map = new Map { // Set the basemap to Streets Basemap = new Basemap(BasemapStyle.ArcGISStreets) }; // Create a new image service raster from the Uri ImageServiceRaster myImageServiceRaster = new ImageServiceRaster(_myUri); try { // Load the image service raster await myImageServiceRaster.LoadAsync(); // Get the ArcGIS image service info (metadata) from the image service raster ArcGISImageServiceInfo myArcGISImageServiceInfo = myImageServiceRaster.ServiceInfo; // Get the full extent envelope of the image service raster (the Charlotte, NC area) Envelope myEnvelope = myArcGISImageServiceInfo.FullExtent; // Define a new view point from the full extent envelope Viewpoint myViewPoint = new Viewpoint(myEnvelope); // Zoom to the area of the full extent envelope of the image service raster await MyMapView.SetViewpointAsync(myViewPoint); // Get the rendering rule info (i.e. definitions of how the image should be drawn) info from the image service raster _myReadOnlyListRenderRuleInfos = myArcGISImageServiceInfo.RenderingRuleInfos; // Loop through each rendering rule info foreach (RenderingRuleInfo myRenderingRuleInfo in _myReadOnlyListRenderRuleInfos) { // Get the name of the rendering rule info string myRenderingRuleName = myRenderingRuleInfo.Name; // Add the name of the rendering rule info to the combo box RenderingRuleChooser.Items.Add(myRenderingRuleName); } // Set the combo box index to the first rendering rule info name RenderingRuleChooser.SelectedIndex = 0; } catch (Exception e) { MessageBox.Show(e.ToString(), "Error"); } }
private async Task Initialize() { // Create a raster layer using an image service. _imageServiceRaster = new ImageServiceRaster(new Uri("https://sampleserver7.arcgisonline.com/server/rest/services/amberg_germany/ImageServer")); RasterLayer rasterLayer = new RasterLayer(_imageServiceRaster); await rasterLayer.LoadAsync(); // Create a map with the raster layer. MyMapView.Map = new Map(BasemapStyle.ArcGISTopographic); MyMapView.Map.OperationalLayers.Add(rasterLayer); await MyMapView.SetViewpointAsync(new Viewpoint(rasterLayer.FullExtent)); // Populate the combo box. MosaicRulesBox.ItemsSource = _mosaicRules.Keys; MosaicRulesBox.SelectedIndex = 0; }
private async Task Initialize() { // Create a raster layer using an image service. _imageServiceRaster = new ImageServiceRaster(new Uri("https://sampleserver7.arcgisonline.com/server/rest/services/amberg_germany/ImageServer")); RasterLayer rasterLayer = new RasterLayer(_imageServiceRaster); await rasterLayer.LoadAsync(); // Create a map with the raster layer. _myMapView.Map = new Map(BasemapStyle.ArcGISTopographic); _myMapView.Map.OperationalLayers.Add(rasterLayer); await _myMapView.SetViewpointAsync(new Viewpoint(rasterLayer.FullExtent)); // Populate the combo box. _imageServiceRaster.MosaicRule = _mosaicRules["None"]; _rulePickerButton.Text = "Rule: None"; }
private async Task LoadRenderingRules() { // Create a new image service raster from the Uri. ImageServiceRaster imageServiceRaster = new ImageServiceRaster(_myUri); try { // Load the image service raster. await imageServiceRaster.LoadAsync(); // Get the ArcGIS image service info (metadata) from the image service raster. ArcGISImageServiceInfo arcGISImageServiceInfo = imageServiceRaster.ServiceInfo; // Get the full extent envelope of the image service raster (the Charlotte, NC area). Envelope myEnvelope = arcGISImageServiceInfo.FullExtent; // Define a new view point from the full extent envelope. Viewpoint viewPoint = new Viewpoint(myEnvelope); // Zoom to the area of the full extent envelope of the image service raster. await _myMapView.SetViewpointAsync(viewPoint); // Get the rendering rule info (i.e. definitions of how the image should be drawn) info from the image service raster. _renderRuleInfos = arcGISImageServiceInfo.RenderingRuleInfos; // Define an index counter to be used by the UISegmentedControl. int counter = 0; // Loop through each rendering rule info. foreach (RenderingRuleInfo renderingRuleInfo in _renderRuleInfos) { // Get the name of the rendering rule info. string renderingRuleName = renderingRuleInfo.Name; // Add the rendering rule info name to the UISegmentedControl. _rulePicker.InsertSegment(renderingRuleName, counter, false); // Increment the counter for adding segments into the UISegmentedControl. counter++; } } catch (Exception e) { new UIAlertView("Error", e.ToString(), (IUIAlertViewDelegate)null, "OK", null).Show(); } }
private async void MainWindow_Loaded(object sender, RoutedEventArgs e) { var map = new Map(BasemapType.DarkGrayCanvasVector, 39.8283, -98.5795, 5); //add map image layer var mapImageUri = new Uri("http://sampleserver5.arcgisonline.com/arcgis/rest/services/Elevation/WorldElevations/MapServer"); ArcGISMapImageLayer imageLayer = new ArcGISMapImageLayer(mapImageUri); map.OperationalLayers.Add(imageLayer); //add map tiled layer var tileUri = new Uri("http://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer"); ArcGISTiledLayer tiledLayer = new ArcGISTiledLayer(tileUri); map.OperationalLayers.Add(tiledLayer); //add vector tile layer var vectorUri = new Uri("http://www.arcgis.com/home/item.html?id=75f4dfdff19e445395653121a95a85db"); ArcGISVectorTiledLayer vector = new ArcGISVectorTiledLayer(vectorUri); map.OperationalLayers.Add(vector); //add raster layer var rasterUri = new Uri("http://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer"); ImageServiceRaster rasterService = new ImageServiceRaster(rasterUri); // Create new image service raster from the Uri await rasterService.LoadAsync(); // Load the image service raster RasterLayer raster = new RasterLayer(rasterService); // Create a new raster layer from the image service raster map.OperationalLayers.Add(raster); // Add the raster layer to the maps layer collection //Add feature layer us cities var featUri = new Uri("http://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer/0"); FeatureLayer usCities = new FeatureLayer(featUri); map.OperationalLayers.Add(usCities); //add feature layer world cities var featUri1 = new Uri("http://sampleserver6.arcgisonline.com/arcgis/rest/services/SampleWorldCities/MapServer/0"); FeatureLayer worldCities = new FeatureLayer(featUri1); map.OperationalLayers.Add(worldCities); MyMapView.Map = map; }
public async Task LoadRenderingRules() { // Create a new image service raster from the Uri ImageServiceRaster myImageServiceRaster = new ImageServiceRaster(_myUri); // Load the image service raster await myImageServiceRaster.LoadAsync(); // Get the ArcGIS image service info (metadata) from the image service raster ArcGISImageServiceInfo myArcGISImageServiceInfo = myImageServiceRaster.ServiceInfo; // Get the full extent envelope of the image service raster (the Charlotte, NC area) Envelope myEnvelope = myArcGISImageServiceInfo.FullExtent; // Define a new view point from the full extent envelope Viewpoint myViewPoint = new Viewpoint(myEnvelope); // Zoom to the area of the full extent envelope of the image service raster await _myMapView.SetViewpointAsync(myViewPoint); // Get the rendering rule info (i.e. definitions of how the image should be drawn) info from the image service raster _myReadOnlyListRenderRuleInfos = myArcGISImageServiceInfo.RenderingRuleInfos; // Define an index counter to be used by the UISegmentedControl int myCounter = 0; // Loop through each rendering rule info foreach (RenderingRuleInfo myRenderingRuleInfo in _myReadOnlyListRenderRuleInfos) { // Get the name of the rendering rule info string myRenderingRuleName = myRenderingRuleInfo.Name; // Add the rendering rule info name to the UISegmentedControl _myUISegmentedControl.InsertSegment(myRenderingRuleName, myCounter, false); // Increment the counter for adding segments into the UISegmentedControl myCounter = myCounter + 1; } }
private void _segmentControl_ValueChanged(object sender, EventArgs e) { // Get the index number of the user choice of render rule names. nint selectedSegmentId = ((UISegmentedControl)sender).SelectedSegment; // Get the rendering rule info name from the UISegmentedControl that was chosen by the user. string selectedRuleName = ((UISegmentedControl)sender).TitleAt(selectedSegmentId); // Loop through each rendering rule info in the image service raster. foreach (RenderingRuleInfo renderingRuleInfo in _renderRuleInfos) { // Get the name of the rendering rule info. string renderingRuleName = renderingRuleInfo.Name; // If the name of the rendering rule info matches what was chosen by the user, proceed. if (renderingRuleName == selectedRuleName) { // Create a new rendering rule from the rendering rule info. RenderingRule renderingRule = new RenderingRule(renderingRuleInfo); // Create a new image service raster. ImageServiceRaster imageServiceRaster2 = new ImageServiceRaster(_myUri) { // Set the image service raster's rendering rule to the rendering rule created earlier. RenderingRule = renderingRule }; // Create a new raster layer from the image service raster. RasterLayer rasterLayer = new RasterLayer(imageServiceRaster2); // Add the raster layer to the operational layers of the map view. _myMapView.Map.OperationalLayers.Add(rasterLayer); // Stop iterating once match is found. break; } } }
private async Task <Layer> GetForestDataLayerAsync() { try { AuthenticationManager.Current.ChallengeHandler = new ChallengeHandler(CredentialService.CreateCredential); //var uri = new Uri("https://geodata.holmen.com/arcgis/rest/services/Baskartor/Fj%C3%A4llkartan/MapServer"); //var layer = new ArcGISMapImageLayer(uri) //{ // Id = LayerConstansts.ForestDataId //}; //await layer.LoadAsync(); //return layer; var uri = new Uri("https://geodata.skogsstyrelsen.se/arcgis/rest/services/Publikt/SkogligaGrunddata_1_2/ImageServer"); ImageServiceRaster imageServiceRaster = new ImageServiceRaster(uri); await imageServiceRaster.LoadAsync(); RasterLayer rasterLayer = new RasterLayer(imageServiceRaster) { Id = LayerConstansts.ForestDataId, IsVisible = false }; return(rasterLayer); } catch (Exception ex) { Debug.WriteLine(ex.Message); } return(null); }
private void Initialize() { // Create new map with the dark gray canvas basemap. Map myMap = new Map(BasemapStyle.ArcGISDarkGray); // Create a Uri to the image service raster. Uri myUri = new Uri("https://gis.ngdc.noaa.gov/arcgis/rest/services/bag_hillshades/ImageServer"); // Create new image service raster from the Uri. ImageServiceRaster myImageServiceRaster = new ImageServiceRaster(myUri); // Create a new raster layer from the image service raster. RasterLayer myRasterLayer = new RasterLayer(myImageServiceRaster); // Add the raster layer to the maps layer collection. myMap.OperationalLayers.Add(myRasterLayer); // Assign the map to the map view. _myMapView.Map = myMap; // Zoom in to the San Francisco Bay. _myMapView.SetViewpointCenterAsync(new MapPoint(-13643095.660131, 4550009.846004, SpatialReferences.WebMercator), 100000); }
private void SelectRenderingRule(RenderingRuleInfo renderingRuleInfo) { // Create a new rendering rule from the rendering rule info. RenderingRule renderingRule = new RenderingRule(renderingRuleInfo); // Create a new image service raster. ImageServiceRaster imageServiceRaster = new ImageServiceRaster(_myUri) { // Set the image service raster's rendering rule to the rendering rule created earlier. RenderingRule = renderingRule }; // Create a new raster layer from the image service raster. RasterLayer rasterLayer = new RasterLayer(imageServiceRaster); // Clear the existing layer from the map. _myMapView.Map.OperationalLayers.Clear(); // Add the raster layer to the operational layers of the map view. _myMapView.Map.OperationalLayers.Add(rasterLayer); // Update the label. _selectionLabel.Text = $"Rule \"{renderingRuleInfo.Name}\" selected."; }
private async void Initialize() { // Create new map with the streets basemap. Map myMap = new Map(Basemap.CreateStreets()); // Create a URI to the image service raster. Uri rasterUri = new Uri("https://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer"); // Create new image service raster from the URI. ImageServiceRaster imageServiceRaster = new ImageServiceRaster(rasterUri); try { // Load the image service raster. await imageServiceRaster.LoadAsync(); // NOTE: This is the ASCII text for actual raw JSON string: // ======================================================== //{ // "raster_function_arguments": // { // "z_factor":{"double":25.0,"type":"Raster_function_variable"}, // "slope_type":{"raster_slope_type":"none","type":"Raster_function_variable"}, // "azimuth":{"double":315,"type":"Raster_function_variable"}, // "altitude":{"double":45,"type":"Raster_function_variable"}, // "type":"Raster_function_arguments", // "raster":{"name":"raster","is_raster":true,"type":"Raster_function_variable"}, // "nbits":{"int":8,"type":"Raster_function_variable"} // }, // "raster_function":{"type":"Hillshade_function"}, // "type":"Raster_function_template" //} // Define the JSON string needed for the raster function const string theJsonString = @"{ ""raster_function_arguments"": { ""z_factor"":{ ""double"":25.0,""type"":""Raster_function_variable""}, ""slope_type"":{ ""raster_slope_type"":""none"",""type"":""Raster_function_variable""}, ""azimuth"":{ ""double"":315,""type"":""Raster_function_variable""}, ""altitude"":{ ""double"":45,""type"":""Raster_function_variable""}, ""type"":""Raster_function_arguments"", ""raster"":{ ""name"":""raster"",""is_raster"":true,""type"":""Raster_function_variable""}, ""nbits"":{ ""int"":8,""type"":""Raster_function_variable""} }, ""raster_function"":{ ""type"":""Hillshade_function""}, ""type"":""Raster_function_template"" }"; // Create a raster function from the JSON string using the static/Shared method called: RasterFunction.FromJson(JSON as String). RasterFunction rasterFunction = RasterFunction.FromJson(theJsonString); // NOTE: You could have alternatively created the raster function via a JSON string that is contained in a // file on disk (ex: hillshade_simplified.json) via the constructor: Esri.ArcGISRuntime.Rasters.RasterFunction(path as String). // Get the raster function arguments. RasterFunctionArguments rasterFunctionArguments = rasterFunction.Arguments; // Get the list of names from the raster function arguments. IReadOnlyList <string> myRasterNames = rasterFunctionArguments.GetRasterNames(); // Apply the first raster name and image service raster in the raster function arguments. rasterFunctionArguments.SetRaster(myRasterNames[0], imageServiceRaster); // Create a new raster based on the raster function. Raster raster = new Raster(rasterFunction); // Create a new raster layer from the raster. RasterLayer rasterLayer = new RasterLayer(raster); // Add the raster layer to the maps layer collection. myMap.Basemap.BaseLayers.Add(rasterLayer); // Assign the map to the map view. _myMapView.Map = myMap; // Get the service information (aka. metadata) about the image service raster. ArcGISImageServiceInfo arcGISImageServiceInfo = imageServiceRaster.ServiceInfo; // Zoom the map to the extent of the image service raster (which also the extent of the raster layer). await _myMapView.SetViewpointGeometryAsync(arcGISImageServiceInfo.FullExtent); } catch (Exception e) { new UIAlertView("Error", e.ToString(), (IUIAlertViewDelegate)null, "OK", null).Show(); } }
private async void Initialize() { // Create new map with the streets basemap Map myMap = new Map(Basemap.CreateStreets()); // Create a Uri to the image service raster Uri myUri = new Uri("https://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer"); // Create new image service raster from the Uri ImageServiceRaster myImageServiceRaster = new ImageServiceRaster(myUri); try { // Load the image service raster await myImageServiceRaster.LoadAsync(); // NOTE: This is the ASCII text for actual raw JSON string: // ======================================================== //{ // "raster_function_arguments": // { // "z_factor":{"double":25.0,"type":"Raster_function_variable"}, // "slope_type":{"raster_slope_type":"none","type":"Raster_function_variable"}, // "azimuth":{"double":315,"type":"Raster_function_variable"}, // "altitude":{"double":45,"type":"Raster_function_variable"}, // "type":"Raster_function_arguments", // "raster":{"name":"raster","is_raster":true,"type":"Raster_function_variable"}, // "nbits":{"int":8,"type":"Raster_function_variable"} // }, // "raster_function":{"type":"Hillshade_function"}, // "type":"Raster_function_template" //} // Define the JSON string needed for the raster function string theJSON_String = @"{ ""raster_function_arguments"": { ""z_factor"":{ ""double"":25.0,""type"":""Raster_function_variable""}, ""slope_type"":{ ""raster_slope_type"":""none"",""type"":""Raster_function_variable""}, ""azimuth"":{ ""double"":315,""type"":""Raster_function_variable""}, ""altitude"":{ ""double"":45,""type"":""Raster_function_variable""}, ""type"":""Raster_function_arguments"", ""raster"":{ ""name"":""raster"",""is_raster"":true,""type"":""Raster_function_variable""}, ""nbits"":{ ""int"":8,""type"":""Raster_function_variable""} }, ""raster_function"":{ ""type"":""Hillshade_function""}, ""type"":""Raster_function_template"" }"; // Create a raster function from the JSON string using the static/Shared method called: RasterFunction.FromJson(json as String) RasterFunction myRasterFunction = RasterFunction.FromJson(theJSON_String); // NOTE: Depending on your platform/device, you could have alternatively created the raster function via a JSON string that is contained in a // file on disk (ex: hillshade_simplified.json) via the constructor: Esri.ArcGISRuntime.Rasters.RasterFunction(path as String) // Get the raster function arguments RasterFunctionArguments myRasterFunctionArguments = myRasterFunction.Arguments; // Get the list of names from the raster function arguments IReadOnlyList <string> myRasterNames = myRasterFunctionArguments.GetRasterNames(); // Apply the first raster name and image service raster in the raster function arguments myRasterFunctionArguments.SetRaster(myRasterNames[0], myImageServiceRaster); // Create a new raster based on the raster function Raster myRaster = new Raster(myRasterFunction); // Create a new raster layer from the raster RasterLayer myRasterLayer = new RasterLayer(myRaster); // Add the raster layer to the maps layer collection myMap.Basemap.BaseLayers.Add(myRasterLayer); // Assign the map to the map view _myMapView.Map = myMap; // Get the service information (aka. metadata) about the image service raster ArcGISImageServiceInfo myArcGISImageServiceInfo = myImageServiceRaster.ServiceInfo; // Zoom the map to the extent of the image service raster (which also the extent of the raster layer) await _myMapView.SetViewpointGeometryAsync(myArcGISImageServiceInfo.FullExtent); // NOTE: The sample zooms to the extent of the ImageServiceRaster. Currently the ArcGIS Runtime does not // support zooming a RasterLayer out beyond 4 times it's published level of detail. The sample uses // MapView.SetViewpointCenterAsync() method to ensure the image shows when the app starts. You can see // the effect of the image service not showing when you zoom out to the full extent of the image and beyond. } catch (Exception e) { new AlertDialog.Builder(this).SetMessage(e.ToString()).SetTitle("Error").Show(); } }