ArcGIS Runtime: Working With Your Portal -...

Preview:

Citation preview

ArcGIS Runtime :

Working with your portalDivesh Goyal

Stuart McIlreavy

Xueming Wu

Agenda

1. Overview

2. Accessing a portal

3. Consuming content from a portal

4. Adding content to a portal

Web Maps

Layers

AppsDesktop

Server GISWeb Scenes

Web GIS | Transformation of the ArcGIS Platform

Portals organize your maps

and data

enable discovery

Empower people

to use and create maps

Executive

Access

Knowledge

Workers

Public

Engagement

Work

Anywhere

Enterprise

Integration

portal

Desktop Web Device

Server Online Content

and Services

ArcGIS

Enterprise

Desktop Web Device

Server Online Content

and Services

ArcGIS

Online

Available in the Cloud . . . . . . and On-Premises

SaaS or SoftwareIs it right for me?

• Typical reasons for choosing ArcGIS Enterprise

- Not ready/interested in the cloud

- Have strict SLAs and governance

- Have no Internet/www connection

- You are responsible for maintenance

• Typical reasons for choosing ArcGIS Online

- Fewer administrative tasks

- Elasticity

- Esri responsible for maintenance

ArcGIS

Enterprise

ArcGIS

Online

Maps / ScenesLayers

Real-Time

(IoT)

Imagery

GIS Maps

& Data

Enterprise

Data

Portal

• Abstracts and organizes all types of geospatial data

Portal Information Model

Organization

Item UserGroup

Application Web Map Web Layer

Service

Dataset

Web Scene …

Portal Information ModelAccessible through the REST API

Runtime

Javascript

Python

Divesh Goyal

Accessing a portal

Accessing a portalCode Workflow

1. Instantiate Portal object

- URL to portal

2. Load it

- Asynchronous Loadable pattern

3. Authenticate user (optional)

- Provide credentials before loading

- Or, let authentication manager challenge

Accessing a portal

• Container based

- HTTP Basic, Digest

- Integrated Windows Authentication

- Digital Certificates (PKI)

• ArcGIS Tokens

• Oauth

- ArcGIS Online Enterprise and Social Logins

- LDAP, Active Directory

- Google+, Facebook

Security mechanisms

MyA

pp

Accessing a portalUser Identity

• Details

- Name, email, bio, thumbnail …

• Role

- Admin, Publisher, User

• Privileges

- Fine grained, task oriented

• Content

- Items

- Groups

Divesh Goyal

Demo

Accessing a portal

Stuart McIlreavy

Accessing content in a portal

Accessing Portal Content

• Content and Types

• Accessing my content

• Browsing content in groups

• Searching for content and groups

• Helper Services

Content and Types

A PortalItem has:

• Content - binary or text data

• Metadata - name, description, tags, etc

• Thumbnail - optional image to represent the item

• Sharing properties - private, public, groups

Content and Types

• There are 95 PortalItemTypes

• Examples of 1st class citizens…

- WebMap

- MapService

- FeatureCollection

- FeatureService

• Examples of 2nd class citizens…

- KML

- PDF

- MicrosoftWord

Accessing My Content

• How do I access my content

• Items in my Root folder

// Gets the folders and items that are stored at the user’s root folder

PortalUserContent myContnet = await portal.User.GetContentAsync();

• Items in a Specific folder

// Gets portal items stored in a specified folder belonging to this user

IEnumerable<PortalItem> items = await portal.User.GetContentAsync("folderId");

Browse Group’s Content

• Getting groups’ Basemaps

// Returns the groups’ basemap gallery.

IEnumerable<Basemap> baseMaps = await portal.GetBasemapsAsync();

• Getting groups’ featured items

// Gets the featured items.

IEnumerable<PortalItem> featuredItems;

featuredItems = await portal.GetFeaturedItemsAsync();

Stuart McIlreavy

Demo

Portal Browser

https://github.com/Esri/arcgis-runtime-demos-dotnet

Search Content

• Search Groups

PortalQueryResultSet<PortalGroups> groups;

groups = await portal.FindGroupsAsync(PortalQueryParameters.CreateForGroups(“Owner",“Title”));

• Search content

PortalQueryResultSet<PortalItem> items;

items = await portal.FindItemsAsync(PortalQueryParameters.CreateForItemsOfType(

PortalItemType.MapService,

“SearchCriteria”));

Content Constructors

• ArcGISImageLayer constructor

//Initializes a new instance of the ArcGISMapImageLayer class with an Item

ArcGISMapImageLayer mapImageLayer = new ArcGISMapImageLayer(item);

• Map constructor

//Initializes a new instance of the Map class with an Item

Map map = new Map(item);

Stuart McIlreavy

Demo

Simple-Layer Picker

Helper Services

• Hosted services

- AnalysisService

- GeometryService

- GeocodeService

- TrafficService

- RouteService

- ElevationService

Xueming Wu

Adding content to a portal

Save a new map to a portal

• Get a Basemap

- portal default basemap:

- Portal.getPortalInfo().getDefaultBasemap()

- portal configured basemaps:

- Portal.getPortalInfo().getBasemapGalleryGroupQuery()

- Portal.findGroupsAsync()

- PortalQueryParameters.setQuery(PortalItem.Type.WEBMAP, group.getGroupId(), null);

- Portal.findItemAsync()

• Create a Map

- ArcGISMap map = new ArcGISMap(basemap);

• Operational layers

- Map.getOperationalLayers().add(layer);

Save a new map to a portal

• Map.saveAsAsync(Portal portal, PortalFolder portalFolder, String title,

Iterable<String> tags, String description, byte[] thumbnailData, boolean

forceSaveToSupportedVersion)

- an authenticated portal

- portal folder, when null it is the user’s root folder

- title, tags, description, and thumbnail

ListenableFuture<PortalItem> saveAsFuture = map.saveAsAsync(portal, null,

"Forest management for the Great " + "Gray Owl", tags,

"Their breeding habitat is the dense coniferous forests of the taiga..",

thumbnailDataArray, true);

Save a new map to a portal

The result is a PortalItem with a type of WebMap.

• Metadata -- ID, title, summary, description, thumbnail image, and tags

• Data -- the JSON, or a URL, or the binary data

• Sharing settings -- the access level and groups to whom the item is accessible

Xueming Wu

Demo

Save a new map to a portal

Share a portal item

PortalItem.getAccess():

• Private—The item is not be shared with anybody. Only the owner and administrator

can view the item.

• Public—The item can be viewed by everybody.

• Organization—The item can be viewed by every member of the organization that the

item is created in.

• Shared—The item can only be viewed by members of a group that the item is shared

with.

Share with everyone or a portal's organization

PortalItem.shareWithAsync(boolean everyone, boolean organization)

• Share with everyone

- portalItem.shareWithAsync(true, false)

• Share with user’s organization

- portalItem.shareWithAsync(false, true)

Share/Unshare with specific portal groups

• Share:

- PortalItem.shareWithGroupsAsync(shareWithGroups);

• Unshare:

- PortalItem.unshareWithGroupsAsync(unshareWithGroups);

Stop sharing

PortalItem.unshareAsync() :

• Makes the item private and accessible to only the item owner and the administrator

• Removes all groups from the item's groups list

Xueming Wu

Demo

Share/unshare a portal item

Create a new portal item -- workflow

• Connect to a portal

• Create a new portal item

• Specify portal item content – item type, title, tag and etc

• Provide portal item data

• Add the portal item to a portal user

PortalItem portalItem =

new PortalItem(portal, PortalItem.Type.PDF, title, description, snippet, tags);

portalUser.addPortalItemAsyncn(portalItem, params, folder);

ArcGIS Runtime SDK v100.x License Model

Standard

• License Key

• All capabilities of Basic

• Access to additional data

• Raster layers

• Raster elevation sources

• Local Server

• Map services

• Feature services

• Edit file geodatabases

• GP services

• Subset of ArcGIS Desktop

basic tools

Advanced

• License Key

• All capabilities of Standard

• Local Server

• Feature services

• Edit enterprise geodatabases

• GP services

• Subset of ArcGIS Desktop

standard and advanced

tools

Basic

• Named User – Level 2

• License Key

• All capabilities of Lite

• Simple feature editing

• Add, update, delete content on

portals

• Use of ArcGIS Online analysis

services

Lite

• Named User – Level 1

• License Key

• View maps, scenes, layers, packages

from the ArcGIS Platform

• Routing

• Place finding

Analysis Extension

• License Key

• Local Server GP tools

• 3D Analyst

• Spatial Analyst

• Network Analyst

Related sessions

ArcGIS Runtime:

Building Cross-platform Apps

Tues 4:00 – 5:00 pm Mojave Learning

Center

ArcGIS Runtime SDKs:

Building a Routing Application

Tues 5:30 – 6:30 pm Mesquite C

ArcGIS Runtime:

Working with maps Online and offline

Weds 1:00 – 2:00 pm Mojave Learning

Center

ArcGIS Runtime:

Editing Your Data Online and Offline

Thurs 10:30 – 11:30 am Catalina - Madera

ArcGIS Runtime:

The Road Ahead

Thurs 2:30– 3:30 pm Primrose B

Related sessions

ArcGIS Runtime:

Analysis

Thurs 4:00 – 5:00 pm Smoketree A-E

ArcGIS Runtime:

Building 3D Applications

Fri 8:30 – 9:30 am Mojave Learning

Center

ArcGIS Runtime:

Everything (or Anything) You Wanted

to Know About the ArcGIS Runtime

SDKs but Were Afraid to Ask

Fri 10:00 – 11:00 am Catalina - Madera

Summary

1. Overview

2. Accessing a portal

3. Consuming content from a portal

4. Adding content to a portal

Please Take Our Survey!

Download the Esri Events app

and go to DevSummit

Select the session you attended

Scroll down to the

“Feedback” section

Complete Answers,

add a Comment,

and Select “Submit”

Recommended