public SaveNewMapAsync ( Viewpoint initialViewpoint, string title, string description, string tags ) : System.Threading.Tasks.Task | ||
initialViewpoint | Viewpoint | |
title | string | |
description | string | |
tags | string | |
Résultat | System.Threading.Tasks.Task |
// Handle the OnMapInfoEntered event from the item input UI // MapSavedEventArgs contains the title, description, and tags that were entered private async void MapItemInfoEntered(object sender, MapSavedEventArgs e) { try { // Get information entered by the user for the new portal item properties var title = e.Title; var description = e.Description; var tags = e.Tags; // Get the current extent var currentViewpoint = _mapView.GetCurrentViewpoint(ViewpointType.BoundingGeometry); // Export the current map view for the item's thumbnail RuntimeImage thumbnailImg = await _mapView.ExportImageAsync(); // See if the map has already been saved (has an associated portal item) if (!_mapViewModel.MapIsSaved) { // Call a method on MapViewModel to save the map as a new portal item await _mapViewModel.SaveNewMapAsync(currentViewpoint, title, description, tags, thumbnailImg); // Report a successful save UIAlertController alert = UIAlertController.Create("Saved map", "Saved " + title + " to ArcGIS Online", UIAlertControllerStyle.Alert); alert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null)); PresentViewController(alert, true, null); } else { // Map has previously been saved as a portal item, update it (title, description, and tags will remain the same) _mapViewModel.UpdateMapItem(); // Report success UIAlertController alert = UIAlertController.Create("Updated map", "Saved changes to " + title, UIAlertControllerStyle.Alert); alert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null)); PresentViewController(alert, true, null); } } catch (Exception ex) { // Report save error UIAlertController alert = UIAlertController.Create("Error", ex.Message, UIAlertControllerStyle.Alert); alert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null)); PresentViewController(alert, true, null); } finally { // Get rid of the item input controls if (_mapInfoUI != null) { _mapInfoUI.Hide(); _mapInfoUI = null; } } }
// Click event for the OK button on the save map dialog private async void OnCloseSaveDialog(object sender, EventArgs e) { if (_saveDialog != null) { // Get title and description text var title = _titleText.Text; var description = _descriptionText.Text; // Dismiss the dialog _saveDialog.Dismiss(); // Return if the text is null or empty for either if (string.IsNullOrEmpty(title) || string.IsNullOrEmpty(description)) { return; } // Get the map view's current extent (viewpoint) to use as the web map initial extent Viewpoint initialMapViewpoint = _mapView.GetCurrentViewpoint(ViewpointType.BoundingGeometry); // Export the current map view for the item's thumbnail RuntimeImage thumbnailImg = await _mapView.ExportImageAsync(); // Provide some default tags for the item var tags = new string[] { "ArcGIS Runtime SDK", "tutorial" }; try { // Call a function on the view model to save the map as a new portal item await _mapViewModel.SaveNewMapAsync(initialMapViewpoint, title, description, tags, thumbnailImg); // Report a successful save AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); dialogBuilder.SetTitle("Map Saved!"); dialogBuilder.SetMessage("Your map ('" + title + "' was saved to ArcGIS Online"); dialogBuilder.Show(); } catch (Exception ex) { // Show the exception message AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); dialogBuilder.SetTitle("Error"); dialogBuilder.SetMessage("Unable to save: " + ex.Message); dialogBuilder.Show(); } } }
// Event handler to get information entered by the user and save the map private async void SaveMapAsync(object sender, ArcGISRuntime.Samples.AuthorEditSaveMap.SaveMapEventArgs e) { try { // Get information entered by the user for the new portal item properties var title = e.MapTitle; var description = e.MapDescription; var tags = e.Tags; // Get the current extent displayed in the map view var currentViewpoint = MyMapView.GetCurrentViewpoint(Esri.ArcGISRuntime.Mapping.ViewpointType.BoundingGeometry); // Export the current map view for the item's thumbnail RuntimeImage thumbnailImg = await MyMapView.ExportImageAsync(); // See if the map has already been saved if (!_mapViewModel.MapIsSaved) { // Save the map as a portal item await _mapViewModel.SaveNewMapAsync(currentViewpoint, title, description, tags, thumbnailImg); // Report a successful save DisplayAlert("Map Saved", "Saved '" + title + "' to ArcGIS Online!", "OK"); } else { // Map has previously been saved as a portal item, update it (title, description, and tags will remain the same) _mapViewModel.UpdateMapItem(); // Report success DisplayAlert("Map Updated", "Saved changes to '" + title + "'", "OK"); } } catch (Exception ex) { // Show the exception message DisplayAlert("Unable to save map", ex.Message, "OK"); } }