Beispiel #1
0
        /// <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;
                    }
                }
            }
        }