Display a web map.
Use case
For displaying web maps stored on ArcGIS Online.
How to use the sample
A web map can be selected from the drop-down list. On selection the web map displays in the map view.
How it works
- Create a
Portal
from the ArcGIS URL http://www.arcgis.com. - Create a
PortalItem
using the Portal and the web map ID:new PortalItem(portal, ID)
. - Create a
Map
using the portal item. - Set the map to the
MapView
.
Relevant API
- Map
- MapView
- Portal
- PortalItem
About the data
The web maps accessed by this sample show Geology for United States and Recent Hurricanes, Cyclones and Typhoons.
Tags
portal item, web map
Sample Code
// Copyright 2022 Esri.
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
// You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
// language governing permissions and limitations under the License.
using Esri.ArcGISRuntime.Mapping;
namespace ArcGIS.Samples.OpenMapURL
{
[ArcGIS.Samples.Shared.Attributes.Sample(
name: "Open map URL",
category: "Map",
description: "Display a web map.",
instructions: "A web map can be selected from the drop-down list. On selection the web map displays in the map view.",
tags: new[] { "portal item", "web map" })]
public partial class OpenMapURL : ContentPage
{
// String array to hold urls to publicly available web maps.
private string[] _itemURLs = {
"https://arcgis.com/home/item.html?id=92ad152b9da94dee89b9e387dfe21acd",
"https://arcgis.com/home/item.html?id=064f2e898b094a17b84e4a4cd5e5f549"
};
// String array to store titles for the webmaps specified above.
private string[] _titles = {
"Geology for United States",
"Recent Hurricanes, Cyclones and Typhoons"
};
public OpenMapURL()
{
InitializeComponent();
Initialize();
}
private void Initialize()
{
// Create a new Map instance with url of the webmap that is displayed by default.
MyMapView.Map = new Map(new Uri(_itemURLs[0]));
}
private async void OnMapsClicked(object sender, EventArgs e)
{
try
{
// Show sheet and get title from the selection
string selectedMapTitle = await Application.Current.MainPage.DisplayActionSheet("Select map", "Cancel", null, _titles);
// If selected cancel do nothing
if (selectedMapTitle == null || selectedMapTitle == "Cancel") return;
// Get index that is used to get the selected url
int selectedIndex = _titles.ToList().IndexOf(selectedMapTitle);
// Create a new Map instance with url of the webmap that selected
MyMapView.Map = new Map(new Uri(_itemURLs[selectedIndex]));
}
catch (Exception ex)
{
await Application.Current.MainPage.DisplayAlert("Error", ex.Message, "OK");
}
}
}
}