/// <summary> /// Loads basemaps from Portal /// </summary> private async Task LoadMaps(ArcGISPortal portal) { try { var items = await portal.GetBasemapsAsync(); Basemaps = items?.Select(b => b.Item).OfType <PortalItem>(); } catch (Exception ex) { ErrorMessage = string.Format("Unable to retrieve basemaps"); StackTrace = ex.ToString(); } }
/// <summary> /// Async task to load maps from the portal instance and put them in groups /// </summary> /// <param name="portal">Portal instance</param> /// <returns></returns> private async Task LoadMaps(ArcGISPortal portal) { StatusMessage = "Loading maps..."; var task1 = portal.GetBasemapsAsync(); var items = await task1; Basemaps = items.Select(b => b.Item).OfType <PortalItem>(); var groups = new ObservableCollection <MapGroup>(); Groups = groups; groups.Add(new MapGroup() { Name = "Base maps", Items = Basemaps }); IsLoadingBasemaps = false; StatusMessage = string.Format("Connected to {0} ({1})", portal.PortalInfo.PortalName, portal.PortalInfo.PortalName); foreach (var item in await portal.GetFeaturedGroupsAsync()) { var query = PortalQueryParameters.CreateForItemsOfTypeInGroup(PortalItemType.WebMap, item.GroupId); query.Limit = 20; var result = await portal.FindItemsAsync(query); if (result.TotalResultsCount > 0) { groups.Add(new MapGroup() { Name = item.Title, Items = result.Results }); if (Featured == null) { Featured = result.Results; } } } }