-
Notifications
You must be signed in to change notification settings - Fork 521
/
OpenMapURL.xaml.cs
68 lines (59 loc) · 2.71 KB
/
OpenMapURL.xaml.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// 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");
}
}
}
}