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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
// Copyright 2021 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 Android.App;
using Android.OS;
using Android.Views;
using Android.Widget;
using Esri.ArcGISRuntime.Mapping;
using Esri.ArcGISRuntime.UI.Controls;
using System;
using System.Linq;
namespaceArcGISRuntime.Samples.OpenMapURL{
[Activity(ConfigurationChanges = Android.Content.PM.ConfigChanges.Orientation | Android.Content.PM.ConfigChanges.ScreenSize)]
[ArcGISRuntime.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" })]
publicclassOpenMapURL : Activity {
// Hold a reference to the map viewprivate MapView _myMapView;
// String array to hold urls to publicly available web maps.privatestring[] _itemUrls = {
"https://arcgis.com/home/item.html?id=92ad152b9da94dee89b9e387dfe21acd",
"https://arcgis.com/home/item.html?id=5be0bc3ee36c4e058f7b3cebc21c74e6",
"https://arcgis.com/home/item.html?id=064f2e898b094a17b84e4a4cd5e5f549" };
// String array to store titles for the webmaps specified above.privatestring[] _titles = {
"Geology for United States",
"Terrestrial Ecosystems of the World",
"Recent Hurricanes, Cyclones and Typhoons" };
protectedoverridevoidOnCreate(Bundle bundle) {
base.OnCreate(bundle);
Title = "Open map (URL)";
// Create the UI, setup the control references and execute initialization CreateLayout();
Initialize();
}
privatevoidInitialize() {
// Create a new Map instance with url of the webmap that is displayed by default _myMapView.Map = new Map(new Uri(_itemUrls[0]));
}
privatevoidOnMapsClicked(object sender, EventArgs e) {
Button mapsButton = (Button)sender;
// Create menu to show map options PopupMenu mapsMenu = new PopupMenu(this, mapsButton);
mapsMenu.MenuItemClick += OnMapsMenuItemClicked;
// Create menu optionsforeach (string title in _titles)
mapsMenu.Menu.Add(title);
// Show menu in the view mapsMenu.Show();
}
privatevoidOnMapsMenuItemClicked(object sender, PopupMenu.MenuItemClickEventArgs e) {
// Get title from the selected itemstring selectedMapTitle = e.Item.TitleCondensedFormatted.ToString();
// Get index that is used to get the selected urlint 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]));
}
privatevoidCreateLayout() {
// Create a new vertical layout for the app LinearLayout layout = new LinearLayout(this) { Orientation = Orientation.Vertical };
// Create button to show possible map options Button mapsButton = new Button(this)
{
Text = "Maps" };
mapsButton.Click += OnMapsClicked;
// Add maps button to the layout layout.AddView(mapsButton);
// Add the map view to the layout _myMapView = new MapView(this);
layout.AddView(_myMapView);
// Show the layout in the app SetContentView(layout);
}
}
}