Portal 类是 GeoScene Enterprise portal 的一部分,它提供了一种方法来构建使用 GeoScene Online 或 GeoScene Enterprise portal 中内容的应用程序。GeoScene Enterprise 是 GeoScene 的软件技术,客户可以在本地或云中进行部署。GeoScene Online 是 GeoScene 的软件即服务产品,它表示 GIS 即服务,并使用与 GeoScene Enterprise 相同的技术实现。
Portal API 允许应用程序开发人员使用 GeoScene Online 或 GeoScene Enterprise 门户中托管的用户、组和内容。该 API 允许开发人员构建支持使用 Web 地图进行共享和协作的 Web、移动和桌面应用程序。组织开发人员还可以使用 API 为其用户构建自定义应用程序。
Portal 类提供当前用户(匿名或登录)看到的门户视图。它包括此门户的名称、徽标、特色项目和支持的协议(http 与 https)等信息。如果用户未登录,则此调用将返回门户的默认视图。如果用户已登录,则返回的门户视图将特定于用户所属的组织。 门户的默认视图取决于从用户配置文件获取的用户的区域性。
如果在加载门户之前未设置 url,则 API 默认为 geosceneConfig.portalUrl。在某些情况下,可能需要多个门户实例。在这些情况下,有几个不同的选项需要考虑。
- 在 PortalItem中设置新的门户实例,并设置门户的 url。
Layer.fromPortalItem({ portalItem: { id: "e691172598f04ea8881cd2a4adaa45ba", // autocastable to Portal portal: { url: "https://thePortalUrl" } } });
- 在将单独的门户实例传递到 PortalItem 的 portal 属性之前,请先创建这些实例。
let portalA = new Portal({ url: "https://www.exampleA.com/arcgis" // First instance }); let portalB = new Portal({ url: "https://www.exampleB.com/arcgis" // Second instance }); let item = new PortalItem({ id: "e691172598f04ea8881cd2a4adaa45ba", portal: portalA // This loads the first portal instance set above }); item.load();
可以调用 Portal 实例上的 when() 方法来执行只能在 已加载 门户后运行的进程。
// load the Portal and PortalQueryParams modules
require(["geoscene/portal/Portal",
"geoscene/portal/PortalQueryParams"
], function(Portal, PortalQueryParams) {
portal = new Portal();
// Setting authMode to immediate signs the user in once loaded
portal.authMode = "immediate";
// Once portal is loaded, user signed in
portal.load().then(function() {
console.log(portal);
// Create query parameters for the portal search
// This object autocasts as new PortalQueryParams()
let queryParams = {
query: "owner:" + portal.user.username,
sortField: "numViews",
sortOrder: "desc",
num: 20
};
// Query the items based on the queryParams created from portal above
portal.queryItems(queryParams).then(createGallery);
});
});
构造函数
属性概述
名称 | 类型 | 描述 | 类 | |
---|---|---|---|---|
String | 更多信息 组织的访问级别。 | 更多信息 | Portal | |
布尔值 | 更多信息 如果为 | 更多信息 | Portal | |
String | 更多信息 用于在用户尝试访问安全资源时处理身份验证的身份验证模式。 | 更多信息 | Portal | |
String[] | 更多信息 在发出跨源资源共享 (CORS) 请求以访问受 Web 图层身份验证保护的服务时要向其发送凭据的受信任服务器阵列。 | 更多信息 | Portal | |
String | 更多信息 当 useVectorBasemaps 不为真时,定义应在 BasemapGallery中显示的底图的查询。 | 更多信息 | Portal | |
String | 更多信息 Bing 密钥,用于使用 Bing 地图的 web 地图。 | 更多信息 | Portal | |
布尔值 | 更多信息 指示组织是否可以在市场中列出应用程序。 | 更多信息 | Portal | |
布尔值 | 更多信息 指示组织是否可以在市场中列出数据服务。 | 更多信息 | Portal | |
布尔值 | 更多信息 指示组织是否可以在市场中列出预先配置的项目。 | 更多信息 | Portal | |
布尔值 | 更多信息 指示组织是否可以在没有客户请求的情况下在市场中提供直接购买。 | 更多信息 | Portal | |
布尔值 | 更多信息 如果为 | 更多信息 | Portal | |
布尔值 | 更多信息 Bing 密钥可以共享给公众,并作为门户描述调用 ( | 更多信息 | Portal | |
布尔值 | 更多信息 若为 | 更多信息 | Portal | |
布尔值 | 更多信息 指示是否允许将企业 IDP 配置为能够打开或关闭 GeoScene 登录的组织。 | 更多信息 | Portal | |
布尔值 | 更多信息 指示是否允许将企业 IDP 配置为能够打开或关闭企业登录的组织。 | 更多信息 | Portal | |
String | 更多信息 标识包含用于在地图查看器中呈现的颜色集的组的查询。 | 更多信息 | Portal | |
布尔值 | 更多信息 指示是否允许组织禁用评论。 | 更多信息 | Portal | |
日期 | 更多信息 组织的创建日期。 | 更多信息 | Portal | |
String | 更多信息 默认区域性(语言和国家/地区)信息。 | 更多信息 | Portal | |
String | 更多信息 门户的自定义基准 URL。 | 更多信息 | Portal | |
String | 更多信息 类的名称。 | 更多信息 | Accessor | |
底图 | 更多信息 用于门户的默认底图。 | 更多信息 | Portal | |
底图 | 更多信息 定义 apiKey 时用于门户的默认开发人员底图。 | 更多信息 | Portal | |
范围 | 更多信息 用于门户的默认范围。 | 更多信息 | Portal | |
底图 | 更多信息 用于门户的默认矢量底图。 | 更多信息 | Portal | |
String | 更多信息 组织/门户的描述。 | 更多信息 | Portal | |
String | 更多信息 定义 apiKey 时应在 BasemapGallery 中显示的底图的查询。 | 更多信息 | Portal | |
布尔值 | 更多信息 指示是否选择加入GeoScene 用户体验改进 (EUEI) 计划的布尔值。 | 更多信息 | Portal | |
对象[] | 更多信息 门户的特色群组。 | 更多信息 | Portal | |
String | 更多信息 定义特色组的查询。 | 更多信息 | Portal | |
String | 更多信息 标识包含图库要素项的组的查询。 | 更多信息 | Portal | |
布尔值 | 更多信息 指示组织是否具有内容类别。 | 更多信息 | Portal | |
Object | 更多信息 门户提供的帮助服务。 | 更多信息 | Portal | |
String | 更多信息 包含要显示在主页特色内容中的群组。 | 更多信息 | Portal | |
整数 | 更多信息 可在主页上显示的特色项目的数量。 | 更多信息 | Portal | |
整数 | 更多信息 门户用于 HTTP 通信的端口。 | 更多信息 | Portal | |
整数 | 更多信息 门户用于 HTTPS 通信的端口。 | 更多信息 | Portal | |
String | 更多信息 拥有此门户的组织的 ID。 | 更多信息 | Portal | |
String | 更多信息 调用 IP 的国家代码(仅限 GeoScene Online)。 | 更多信息 | Portal | |
布尔值 | 更多信息 指示门户是否为组织。 | 更多信息 | Portal | |
布尔值 | 更多信息 指示门户是否为本地。 | 更多信息 | Portal | |
布尔值 | 更多信息 指示门户是否处于只读模式。 | 更多信息 | Portal | |
String | 更多信息 此标识包含编辑模板的组的查询。 | 更多信息 | Portal | |
布尔值 | 更多信息 指示门户的资源是否已加载。 | 更多信息 | Portal | |
错误 | 更多信息 如果加载时发生错误,则返回 Error 对象。 | 更多信息 | Portal | |
String | 更多信息 表示加载操作的状态。 | 更多信息 | Portal | |
对象[] | 更多信息 加载时发生的警告列表。 | 更多信息 | Portal | |
整数 | 更多信息 为组织用户发行的令牌的最大有效期(以分钟为单位)。 | 更多信息 | Portal | |
日期 | 更多信息 上次修改组织的日期。 | 更多信息 | Portal | |
String | 更多信息 组织名称。 | 更多信息 | Portal | |
String | 更多信息 门户主机的 URL。 | 更多信息 | Portal | |
String | 更多信息 门户模式。 | 更多信息 | Portal | |
Object | 更多信息 特定于组织的属性,例如“联系我们”链接。 | 更多信息 | Portal | |
String | 更多信息 组织的区域。 | 更多信息 | Portal | |
String | 更多信息 门户的 REST URL。 | 更多信息 | Portal | |
对象[] | 更多信息 主页的自定义 HTML。 | 更多信息 | Portal | |
布尔值 | 更多信息 指示您的组织的描述是否显示在主页上。 | 更多信息 | Portal | |
Object | 更多信息 加载 | 更多信息 | Portal | |
布尔值 | 更多信息 指示是否支持托管服务。 | 更多信息 | Portal | |
String | 更多信息 定义符号集的查询。 | 更多信息 | Portal | |
String | 更多信息 定义将出现在模板库中的模板集合的查询。 | 更多信息 | Portal | |
String | 更多信息 组织缩略图的 URL。 | 更多信息 | Portal | |
String | 更多信息 设置组织用户的度量单位。 | 更多信息 | Portal | |
String | 更多信息 门户实例的 URL。 | 更多信息 | Portal | |
String | 更多信息 组织管理员选择与 customBaseURL 一起使用的前缀。 | 更多信息 | Portal | |
PortalUser | 更多信息 代表门户注册用户的信息。 | 更多信息 | Portal | |
布尔值 | 更多信息 如果为 | 更多信息 | Portal | |
布尔值 | 更多信息 如果为 | 更多信息 | Portal | |
String | 更多信息 当 useVectorBasemaps 为 true 时,定义应在 BasemapGallery 中显示的矢量切片底图的查询。 | 更多信息 | Portal |
属性详情
-
access String
-
组织的访问级别。公开时,匿名用户可以访问组织。私有时,访问权限仅限于组织成员。
可能值:"public"|"private"
-
allSSL Boolean
-
如果为
true
,则必须通过 SSL 访问组织的门户资源。
-
authMode String
-
用于在用户尝试访问安全资源时处理身份验证的身份验证模式。
可能值 说明 anonymous 请求安全资源时,将返回错误。 auto 当请求安全资源时,用户将登录。 immediate 用户将在加载门户时登录。 可能值:"anonymous"|"auto"|"immediate"
- 默认值:auto
-
在发出跨源资源共享 (CORS) 请求以访问受 Web 图层身份验证保护的服务时要向其发送凭据的受信任服务器阵列。
-
basemapGalleryGroupQuery String起始版本:GeoScene API for JavaScript 4.4
-
当 useVectorBasemaps 不为 true 时,定义应在 BasemapGallery 中显示的底图的查询。fetchBasemaps() 方法会自动执行此操作。
-
bingKey String
-
Bing 密钥,用于使用 Bing 地图的 web 地图。
-
canListApps Boolean
-
指示组织是否可以在市场中列出应用程序。
-
canListData Boolean
-
指示组织是否可以在市场中列出数据服务。
-
canListPreProvisionedItems Boolean
-
指示组织是否可以在市场中列出预先配置的项目。
-
canProvisionDirectPurchase Boolean
-
指示组织是否可以在没有客户请求的情况下在市场中提供直接购买。
-
canSearchPublic Boolean
-
如果为
true
,则组织的公共项目、组和用户将包含在搜索查询中。当false
时,则不包括组织外部的公共项目。但是,属于组织的公共项目也包括在内。- 默认值:true
-
-
Bing 密钥可以共享给公众,并作为门户描述调用 (
/sharing/rest/portals/<orgid>
) 的一部分返回。这需要将门户的访问权限设置为公共。canShareBingPublic 属性不会公开返回,而只会显示给组织内的用户。- 默认值:false
-
-
若为
true
,允许组织成员在组织外部共享。- 默认值:false
-
canSignInArcGIS Boolean
-
指示是否允许将企业 IDP 配置为能够打开或关闭 ArcGIS 登录的组织。
- 默认值:false
-
canSignInIDP Boolean
-
指示是否允许将企业 IDP 配置为能够打开或关闭企业登录的组织。
- 默认值:false
-
colorSetsGroupQuery String
-
标识包含用于在地图查看器中呈现的颜色集的组的查询。
-
commentsEnabled Boolean
-
指示是否允许组织禁用评论。当 commentsEnabled 为 false 时,将隐藏评论但不移除。对于组织中的所有项目,numComments 设置为 零。调用添加评论和查看评论将失败。如果组织重新启用评论,则显示评论并恢复 numComments。
- 默认值:false
-
created Date
-
组织的创建日期。
-
culture String
-
默认区域性(语言和国家/地区)信息。
-
customBaseUrl String
-
门户的自定义基准 URL。
-
起始版本:GeoScene API for JavaScript 4.7
-
类的名称。声明的类名的格式为
geoscene.folder.className
。
-
defaultBasemap Basemap
-
用于门户的默认底图。在地图查看器中使用。
-
defaultExtent Extent
-
用于门户的默认范围。在地图查看器中使用。范围将位于默认底图的空间参考中。
-
defaultVectorBasemap Basemap起始版本:GeoScene API for JavaScript 4.4
-
用于门户的默认矢量底图。在地图查看器中使用。
-
description String
-
组织/门户的描述。
-
devBasemapGalleryGroupQuery String起始版本:GeoScene API for JavaScript 4.22
-
定义 apiKey 时应在 BasemapGallery 中显示的底图的查询。fetchBasemaps() 方法会自动执行此操作。
-
eueiEnabled Boolean起始版本:GeoScene API for JavaScript 4.7
-
指示是否选择加入GeoScene 用户体验改进 (EUEI) 计划的布尔值。
- 默认值:null
-
门户的特色群组。返回一个对象数组,这些对象提供对每个专题组的所有者和标题的访问权限。此数组中的每个项目都具有以下规范:
-
featuredItemsGroupQuery String
-
定义特色组的查询。如果为 null,则组织中查看次数最多的项目将是专题项目。
-
galleryTemplatesGroupQuery String
-
标识包含图库要素项的组的查询。设置一个群组 ID,如果为 null,则组织中查看次数最多的项目将显示在库中。
-
hasCategorySchema Boolean起始版本:GeoScene API for JavaScript 4.8
-
指示组织是否具有内容类别。
- 默认值:false
-
helperServices Object起始版本:GeoScene API for JavaScript 4.4
-
门户提供的帮助服务。这对于确定相关方法的 URL 很有用。建议将这些 URL 与它们各自的
rest
模块一起使用,而不是使用已弃用的帮助方法。有关帮助服务的更多信息,请参阅 GeoScene Server 文档中的关于实用程序服务 主题。
示例:require([ "geoscene/Map", "geoscene/views/MapView", "geoscene/portal/Portal", "geoscene/core/Collection", "geoscene/layers/GraphicsLayer", "geoscene/rest/route", "geoscene/rest/support/RouteParameters", "geoscene/rest/support/Stop", ... ], function(Map, MapView, Portal, Collection, GraphicsLayer, route, RouteParameters, Stop, ... ) { // create new Portal object with relevant URL const portal = new Portal({ url: "YOUR_PORTAL_URL" }); // the stops and route result will be stored in this layer const routingLayer = new GraphicsLayer(); const map = new Map({ basemap: "geoscene-blue", layers: [routingLayer] }); const view = new MapView({ container: "viewDiv", map: map, center: [-117.39966, 34.06873], zoom: 10 }); // create a Collection of new Stops const stops = new Collection([ new Stop({ geometry: { x: -117.59275, y: 34.06200 }, name: "Ontario Airport" }), new Stop({ geometry: { x: -117.19570, y: 34.05609 }, name: "GeoScene Campus" }) ]); // setup the RouteParameters with API key and Stops const routeParams = new RouteParameters({ // An authorization string used to access the routing service apiKey: "YOUR_API_KEY", stops }); // define the symbology used to display the route const routeSymbol = { type: "simple-line", // autocasts as SimpleLineSymbol() color: [175, 155, 215, 0.5], width: 5 }; // load Portal instance portal.load().then(function() { // display URLs to all helper services console.log("Show helperServices URLs: ", portal.helperServices); // access helperServices from the Portal instance // to get the routing URL of interest const routeURL = portal.helperServices.route.url; // use helperServices to perform routing route.solve(routeURL, routeParams).then(showRouteInfo); } // do something useful with the results // like display them to the console // or display them on the map function showRouteInfo(routeSolveResult) { console.log("Show all results: ", routeSolveResult); const routeResult = routeSolveResult.routeResults[0].route; routeResult.symbol = routeSymbol; routingLayer.add(routeResult); } });
-
homePageFeaturedContent String
-
包含要显示在主页特色内容中的群组。
-
homePageFeaturedContentCount Number
-
可在主页上显示的特色项目的数量。最大值为 100。仅接受整数。
-
httpPort Number
-
门户用于 HTTP 通信的端口。
-
httpsPort Number
-
门户用于 HTTPS 通信的端口。
-
id String
-
拥有此门户的组织的 ID。如果为
null
,则这是匿名和非组织用户的默认门户。
-
ipCntryCode String
-
调用 IP 的国家代码(仅限 GeoScene Online)。
-
isOrganization Booleanreadonly
-
指示门户是否为组织。
-
isPortal Boolean
-
指示门户是否为本地。
-
isReadOnly Boolean起始版本:GeoScene API for JavaScript 4.14
-
指示门户是否处于只读模式。如果为
true
,则无法在门户上创建、修改或删除内容。
-
layerTemplatesGroupQuery String
-
此标识包含编辑模板的组的查询。
-
loaded Booleanreadonly
-
指示门户的资源是否已加载。如果为
true
,则可以访问对象的所有属性。- 默认值:false
-
loadError Errorreadonly
-
如果加载时发生错误,则返回 Error 对象。
- 默认值:null
-
loadStatus Stringreadonly
-
表示加载操作的状态。
值 说明 not-loaded 对象的资源尚未加载。 loading 对象的资源当前正在加载。 loaded 对象的资源已加载且未出现错误。 failed 无法加载对象的资源。有关更多详情,请参阅加载错误。 可能值:"not-loaded"|"loading"|"failed"|"loaded"
- 默认值:not-loaded
-
加载时发生的警告列表。
-
maxTokenExpirationMinutes Number
-
为组织用户发行的令牌的最大有效期(以分钟为单位)。-1 为默认值,是一个特殊值,表示无限超时或永久令牌。对于使用 OAuth 2.0 授权授予的令牌,它表示刷新令牌的最大有效性。对于访问令牌,最大有效期为两周或此值中的较低值。
-
modified Date
-
上次修改组织的日期。
-
name String
-
组织名称。
-
portalHostname String
-
门户主机的 URL。
-
portalMode String
-
门户模式。
可能值:"multitenant"|"singletenant"
-
portalProperties Object
-
特定于组织的属性,例如“联系我们”链接。如果组织是公开的,则属性对匿名用户可见。
-
region String
-
组织的区域。
-
restUrl Stringreadonly
-
门户的 REST URL,例如 GeoScene Online 的“http://www.geosceneonline.cn/geoscene/sharing/rest”和您内部的“https://www.example.com/geoscene/sharing/rest” 门户网站。
-
主页的自定义 HTML。
-
showHomePageDescription Boolean
-
指示您的组织的描述是否显示在主页上。
-
sourceJSON Object起始版本:GeoScene API for JavaScript 4.13
-
加载
Portal
时用于创建属性值的 JSON。虽然最常用的属性直接在Portal
类上公开,但这提供了对门户返回的所有信息的访问。如果在使用较旧版本的 API 构建的应用程序中工作,该应用程序需要从较新版本访问门户属性,则此属性很有用。
-
supportsHostedServices Boolean
-
指示是否支持托管服务。
- 默认值:false
-
symbolSetsGroupQuery String
-
定义符号集的查询。
-
templatesGroupQuery String
-
定义将出现在模板库中的模板集合的查询。
-
thumbnailUrl Stringreadonly
-
组织缩略图的 URL。
-
url String
-
门户实例的 URL。应该使用通过 geosceneConfig.portalUrl 设置门户实例的位置,而不是直接在此属性上设置它。
如果使用本地门户,则语法应类似于:
https://www.example.com/geoscene
默认值: 此属性的默认值与 geosceneConfig.portalUrl 属性值相同。
-
urlKey String
-
组织管理员选择与 customBaseURL 一起使用的前缀。
-
user PortalUser
-
代表门户注册用户的信息。
-
useStandardizedQuery Boolean
-
如果为
true
,则在查询图层和表时,只能使用符合 SQL92 的简单 where 子句。推荐的安全设置为 true。
-
useVectorBasemaps Boolean起始版本:GeoScene API for JavaScript 4.4
-
如果为
true
,则组织已选择使用矢量切片底图,并且 (a) 应使用 vectorBasemapGalleryGroupQuery 代替 basemapGalleryGroupQuery,而 (b) 应使用 defaultVectorBasemap 代替 defaultBasemap。fetchBasemaps() 方法自动使用 vectorBasemapGalleryGroupQuery。
-
vectorBasemapGalleryGroupQuery String起始版本:GeoScene API for JavaScript 4.4
-
当 useVectorBasemaps 为 true 时,定义应在 BasemapGallery中显示的矢量切片底图的查询。fetchBasemaps() 方法会自动执行此操作。
方法概述
方法详情
-
cancelLoad()
-
如果 load() 操作已经在进行中,则取消它。
-
createClosestFacilityTask(){Promise<ClosestFacilityTask>}起始版本:GeoScene API for JavaScript 4.12已弃用从 4.21 版开始。将 closestFacility 与 helperServices 一起使用。
-
返回门户的 ClosestFacilityTask 帮助器服务实例的帮助器函数。
返回:类型 说明 Promise<ClosestFacilityTask> 解析后,返回 ClosestFacilityTask 的实例。 - 另请参阅:
-
createElevationLayers(){Promise<ElevationLayer[]>}起始版本:GeoScene API for JavaScript 4.12
-
一个帮助函数,它返回从门户的有限错误栅格压缩 (LERC) 高程帮助服务派生的 ElevationsLayers 数组。
返回:类型 说明 Promise<ElevationLayer[]> 解析后,返回一个 ElevationLayers 数组。 - 另请参阅:
-
createGeometryService(){Promise<GeometryService>}起始版本:GeoScene API for JavaScript 4.12已弃用从 4.21 版开始。将 geometryService 与 helperServices 一起使用。
-
一个帮助函数,它返回门户的 GeometryService帮助服务的实例。
返回:类型 说明 Promise<GeometryService> 解析后,返回 GeometryService 实例。 - 另请参阅:
-
起始版本:GeoScene API for JavaScript 4.12已弃用从 4.21 版开始。将 print 与 helperServices 一起使用。
-
返回:
类型 说明 Promise<PrintTask> 解析后,返回 PrintTask 实例。 - 另请参阅:
示例:// example using "geoscene/rest/print" with helperServices require([ "geoscene/portal/Portal", "geoscene/rest/print", "geoscene/rest/support/PrintTemplate", "geoscene/rest/support/PrintParameters", ... ], function(Portal, print, PrintTemplate, PrintParameters, ... ) { // create new Portal object with relevant URL const portal = new Portal({ url: "YOUR_PORTAL_URL" }); const template = new PrintTemplate({ format: "pdf", exportOptions: { dpi: 12 }, layout: "a4-portrait", layoutOptions: { titleText: "Gillette Stadium", authorText: "Thomas B." } }); const params = new PrintParameters({ view: view, template: template }); // load Portal instance portal.load().then(function() { // access helperServices from the Portal instance // to get the print URL of interest const printURL = portal.helperServices.printTask.url; // use helperServices to perform printing print.execute(printURL, params).then(printResult).catch(printError); } function printResult(result) { console.log(result.url); window.open(result.url); } function printError(err) { console.log("Something broke: ", err); } });
-
起始版本:GeoScene API for JavaScript 4.12已弃用从 4.21 版开始。将 路径 与 helperServices 一起使用。
-
返回:
类型 说明 Promise<RouteTask> 解析后,返回 RouteTask 实例。 - 另请参阅:
示例:// example using "geoscene/rest/route" with helperServices require([ "geoscene/portal/Portal", "geoscene/core/Collection", "geoscene/rest/route", "geoscene/rest/support/RouteParameters", "geoscene/rest/support/Stop", "geoscene/layers/GraphicsLayer", ... ], function(Portal, Collection, route, RouteParameters, Stop, GraphicsLayer, ... ) { // create new Portal object with relevant URL const portal = new Portal({ url: "YOUR_PORTAL_URL" }); // the stops and route result will be stored in this layer const routingLayer = new GraphicsLayer(); // create a Collection of new Stops const stops = new Collection([ new Stop({ geometry: { x: -117.59275, y: 34.06200 }, name: "Ontario Airport" }), new Stop({ geometry: { x: -117.19570, y: 34.05609 }, name: "GeoScene Campus" }) ]); // setup the RouteParameters with API key and Stops const routeParams = new RouteParameters({ // An authorization string used to access the routing service apiKey: "YOUR_API_KEY", stops }); // define the symbology used to display the route const routeSymbol = { type: "simple-line", // autocasts as SimpleLineSymbol() color: [0, 0, 255, 0.5], width: 5 }; // load Portal instance portal.load().then(function() { // access helperServices from the Portal instance // to get the routing URL of interest const routeURL = portal.helperServices.route.url; // use helperServices to perform routing route.solve(routeURL, routeParams).then(showRouteInfo); } // do something useful with the results // like display them to the console // or display it on the map function showRouteInfo(routeSolveResult) { console.log("Show all results: ", routeSolveResult); console.log("Show the route information: ", routeSolveResult.routeResults[0].route); const routeResult = routeSolveResult.routeResults[0].route; routeResult.symbol = routeSymbol; routingLayer.add(routeResult); map.add(routingLayer); } });
-
createServiceAreaTask(){Promise<ServiceAreaTask>}起始版本:GeoScene API for JavaScript 4.12已弃用从 4.21 版开始。将 路径 与 helperServices 一起使用。
-
返回门户的 ServiceAreaTask帮助服务的实例的帮助函数。
返回:类型 说明 Promise<ServiceAreaTask> 解析后,返回 ServiceAreaTask 实例。 - 另请参阅:
示例:// example using "geoscene/rest/serviceArea" with helperServices require([ "geoscene/portal/Portal", "geoscene/rest/serviceArea", "geoscene/rest/support/ServiceAreaParameters", "geoscene/rest/support/FeatureSet", "geoscene/Graphic", ... ], function(Portal, serviceArea, ServiceAreaParams, FeatureSet, Graphic, ...) { // create new Portal object with relevant URL const portal = new Portal({ url: "YOUR_PORTAL_URL" }); // load Portal instance portal.load(); view.on("click", function(event){ const locationGraphic = createGraphic(event.mapPoint); const serviceAreaParams = createServiceAreaParams(locationGraphic, view.spatialReference); const serviceAreaUrl = portal.helperServices.serviceArea.url; solveServiceArea(serviceAreaUrl, serviceAreaParams); }); // Create the location graphic function createGraphic(point) { view.graphics.removeAll(); const graphic = new Graphic({ geometry: point, symbol: { type: "simple-marker", color: "white", size: 8 } }); view.graphics.add(graphic); return graphic; } function createServiceAreaParams(locationGraphic, outSpatialReference) { // Create one or more locations (facilities) to solve for const featureSet = new FeatureSet({ features: [locationGraphic] }); // Set all of the input parameters for the service const serviceAreaParameters = new ServiceAreaParams({ apiKey: "YOUR_API_KEY", facilities: featureSet, trimOuterPolygon: true, outSpatialReference: outSpatialReference }); return serviceAreaParameters; } function solveServiceArea(url, serviceAreaParams) { return serviceArea.solve(url, serviceAreaParams) .then(function(result){ if (result.serviceAreaPolygons.length) { // Draw each service area polygon result.serviceAreaPolygons.forEach(function(graphic){ graphic.symbol = { type: "simple-fill", color: "rgba(62,13,94,.25)" } view.graphics.add(graphic,0); }); } }, function(error){ console.log(error); }); } });
-
获取显示在 BasemapGallery中的底图。定义 apiKey 后,底图将基于 devBasemapGalleryGroupQuery。当 useVectorBasemaps 为
true
, 底图将基于 vectorBasemapGalleryGroupQuery。否则,它基于 basemapGalleryGroupQuery。参数:basemapGalleryGroupQuery String可选提供时,此参数用于根据输入查询参数获取底图。
options Object可选具有以下属性的对象。
规范:signal AbortSignal可选可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的 Error 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回:类型 说明 Promise<Basemap[]> 解析为表示门户底图库中使用的底图的 Basemap 对象数组。 示例:portal.fetchBasemaps("title:\"Cloud Creek Basemaps\" AND owner:jsmith") .then(function(basemaps){ // do something with the basemaps });
-
起始版本:GeoScene API for JavaScript 4.8
-
如果存在,则获取组织的类别架构。
参数:options Object可选具有以下属性的对象。
规范:signal AbortSignal可选可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的 Error 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回:类型 说明 Promise<Object[]> 解析为包含以下属性的对象数组: 属性 类型 说明 title 字符串 类别架构的标题。 categories 对象[] 包含标题和类别数组的对象数组。 示例:// Fetches the category schema portal.fetchCategorySchema().then(function(schemas){ schemas.forEach(function(schema){ console.log("schema: ", schema); }); });
-
fetchFeaturedGroups(options){Promise<PortalGroup[]>}
-
获取门户中的特色组。
参数:options Object可选具有以下属性的对象。
规范:signal AbortSignal可选可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的 Error 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回:类型 说明 Promise<PortalGroup[]> 解析为一组 PortalGroup 对象。 示例:// fetch featured groups portal.fetchFeaturedGroups().then(function(groups){ groups.forEach(function(group){ group.fetchMembers().then(function(members){ console.log("member", members); }); }); });
-
起始版本:GeoScene API for JavaScript 4.8
-
获取并返回与门户实例关联的区域。
参数:options Object可选具有以下属性的对象。
规范:signal AbortSignal可选可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的 Error 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回:类型 说明 Promise<Object[]> 解析为包含以下属性的对象数组: 属性 类型 说明 localizedName 字符串 区域的本地化名称。例如,“澳大利亚”。 name 字符串 区域名称。例如,“澳大利亚”。 region string 区域名称。例如 "AU"。 - 另请参阅:
-
起始版本:GeoScene API for JavaScript 4.23
-
获取并返回当前用户看到的门户设置,无论是匿名的还是登录的。这将返回诸如任何可访问的帮助服务、允许的重定向 URI 以及任何访问通知或信息横幅的配置等信息。
参数:options Object可选具有以下属性的对象。
规范:signal AbortSignal可选可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的 Error 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回:类型 说明 Promise<Object> 解析为包含帮助服务、重定向 URI 和访问通知或信息横幅配置等信息的对象。 - 另请参阅:
-
-
第一次调用此方法时会创建一个新的
Portal
实例。来自 config.portalUrl 的 URL 将自动用于此实例。然后缓存此实例并用于对该方法的任何后续调用。返回:类型 说明 Portal 门户实例。
-
isFulfilled(){Boolean}
-
isFulfilled()
可用于验证创建类的实例是否已完成(已解决或已拒绝)。如果满足,则返回true
。返回:类型 说明 布尔值 指示创建类的实例是否已完成(已解决或已拒绝)。
-
load(signal){Promise}
-
加载此类引用的资源。如果视图 是使用地图实例构造的,则此方法会自动为视图及其在地图中引用的所有资源执行。
开发人员在访问不会在视图中加载的资源时必须调用此方法。
load()
方法仅在第一次调用时触发资源的加载。随后的调用返回相同的promise。可以提供一个
signal
来停止对Loadable
实例的加载状态感兴趣。当信号中止时,实例不会停止其加载过程,只有 cancelLoad 可以中止它。参数:signal AbortSignal可选可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的 Error 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回:类型 说明 Promise 资源已加载时解析。
-
queryGroups(queryParams, options){Promise<PortalQueryResult>}
-
对 Portal 执行查询以返回与输入查询匹配的 PortalGroup 对象数组。
参数:Autocasts from ObjectPortalQueryParams 中定义的输入查询参数。
options Object可选具有以下属性的对象。
规范:signal AbortSignal可选可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的错误拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回:类型 说明 Promise<PortalQueryResult> 解析后,解析为 PortalQueryResult 实例,该实例包含 PortalGroup 对象的 results
数组,表示与输入查询匹配的所有组。- 另请参阅:
-
queryItems(queryParams, options){Promise<PortalQueryResult>}
-
对 Portal 执行查询以返回与输入查询匹配的 PortalItem 对象数组。
参数:Autocasts from ObjectPortalQueryParams 中定义的输入查询参数。
options Object可选具有以下属性的对象。
规范:signal AbortSignal可选可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的 Error 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回:类型 说明 Promise<PortalQueryResult> 解析后,解析为 PortalQueryResult 实例,该实例 PortalItem 对象的 results
数组,表示与输入查询匹配的所有项目。- 另请参阅:
示例:// Once portal is loaded, user signed in portal.load().then(function() { console.log(portal); // Create query parameters for the portal search // This object autocasts as new PortalQueryParams() let queryParams = { query: "owner:" + portal.user.username, sortField: "numViews", sortOrder: "desc", num: 20 }; // Query the items based on the queryParams created from portal above portal.queryItems(queryParams).then(createGallery); });
-
queryUsers(queryParams, options){Promise<PortalQueryResult>}
-
对 Portal 执行查询以返回与输入查询匹配的 PortalUser 对象数组。
参数:Autocasts from ObjectPortalQueryParams 中定义的输入查询参数。
options Object可选具有以下属性的对象。
规范:signal AbortSignal可选可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的 Error 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回:类型 说明 Promise<PortalQueryResult> 解析后,解析为 PortalQueryResult 的实例,该实例包含 PortalUser 对象的 results
数组,表示与输入查询匹配的所有项目。- 另请参阅:
示例:// Once portal is loaded, user signed in portal.load().then(function() { // queryUsers // This object autocasts as new PortalQueryParams() let queryParameters = { query: "username:" + portal.user.username }; portal.queryUsers(queryParameters).then(function(queryResults){ queryResults.results[0].fetchFolders().then(function(folders){ folders.forEach(function(folder){ console.log(" user folder", folder.title); }); }); }); });
-
when(callback, errback){Promise}起始版本:GeoScene API for JavaScript 4.6
-
when()
一旦创建了类的实例,就可以利用它。这个方法有两个输入参数:一个callback
函数和一个errback
函数。callback
在类的实例加载时执行。errback
在类的实例无法加载时执行。参数:callback Function可选当 promise 解决时调用的函数。
errback Function可选当 promise 失败时执行的函数。
返回:类型 说明 Promise 返回 callback
结果的新承诺,可用于链接其他函数。示例:// Although this example uses MapView, any class instance that is a promise may use when() in the same way let view = new MapView(); view.when(function(){ // This function will execute once the promise is resolved }, function(error){ // This function will execute if the promise is rejected due to an error });