可以在自定义 Web 应用程序中使用运行 ArcGIS Server 的独立服务器上的地理处理服务以及为 Web 工具提供支持的联合服务器上的服务,从而为 Web 应用程序的客户端提供地理处理和分析解决方案。 可以使用 ArcGIS Maps SDK for JavaScript 从头开始构建 web 应用程序。 此外,可以在 ArcGIS Enterprise 中使用分析微件 ArcGIS Experience Builder 部署可配置的 web 应用程序。
基础地理处理服务将通过 REST 进行通信并连接到 ArcGIS Server 上的服务端点,不考虑构建 web 应用程序的方法。
- 服务端点是一个 URL,通常采用以下格式:https://organization.example.com/<context>/rest/<ServiceName>。
- 每个服务端点都有描述服务、可执行操作和服务组成资源的信息。 在地理处理环境中,服务资源由一个或多个工具组成。
要了解有关将 web 工具与 ArcGIS REST API 配合使用的详细信息,请参阅地理处理服务。
如果您不希望构建 Web 应用程序,但仍希望获得丰富的 Web 体验,则可以在 ArcGIS Enterprise 中使用 Map Viewer。
自定义 web 应用程序中的 web 工具和地理处理服务
通常使用 ArcGIS Maps SDK for JavaScript 构造自定义 web 应用程序。 虽然您可以构造任何可通过 REST 与服务进行通信的应用程序,但以下讨论主要关注 JavaScript。 如果您已经擅长 JavaScript 和地理处理,您可能希望查看示例与代码片段。 若非如此,本节的其余部分概述了将地理处理添加到 web 应用程序所需的以下过程:
- 正在初始化地理处理服务。
- 设置输入参数
- 运行地理处理服务
- 正在获取和处理一个或多个结果
以下 JavaScript 代码取自计算视域示例,其中仅有用于说明运行地理处理工具所需四个步骤的相关片段。 JavaScript 中的示例有助于提供一个完整的示例,而以下内容只会生成一个带有附加代码的工作网页:
// esri.tasks.Geoprocessor is required for using Geoprocessor.
// Add it along with other dojo.require statements.
dojo.require(esri.tasks.Geoprocessor);
// Step 1: Initialize the geoprocessing and point to the REST URL
var gpUrl = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Elevation/ESRI_Elevation_World/GPServer/Viewshed";
var gp = new Geoprocessor(gpUrl);
// Set output spatial reference
gp.outSpatialReference = { wkid: 102100 };
function computeViewshed(event) {
graphicsLayer.removeAll();
// Step 2: Set up input parameters and assign or collect inputs from user
var point = new Point({
longitude: event.mapPoint.longitude,
latitude: event.mapPoint.latitude
});
var inputGraphic = new Graphic({
geometry: point,
symbol: markerSymbol
});
graphicsLayer.add(inputGraphic);
var inputGraphicContainer = [];
inputGraphicContainer.push(inputGraphic);
var featureSet = new FeatureSet();
featureSet.features = inputGraphicContainer;
var vsDistance = new LinearUnit();
vsDistance.distance = 5;
vsDistance.units = "miles";
var params = {
"Input_Observation_Point": featureSet,
"Viewshed_Distance": vsDistance
};
// Step 3: Run the service. In this instance, the service is Synchronous; Execute
// will be called. An Asynchronous service will use gp.submitJob.
gp.execute(params).then(drawResultData);
}
// Step 4: Render the result. Symbology is assigned and the graphics are added to the map.
function drawResultData(result) {
var resultFeatures = result.results[0].value.features;
// Assign each resulting graphic a symbol
var viewshedGraphics = resultFeatures.map(function(feature) {
feature.symbol = fillSymbol;
return feature;
});
// Add the resulting graphics to the graphics layer
graphicsLayer.addMany(viewshedGraphics);
}
在上例中,必须加载 Geoprocessor 类,并且服务的 REST URL 将与全局变量一起使用来定义地理处理任务。 下一步是构建特定于运行应用程序的工具的参数。 此示例需要一个点要素输入和一个具有线性单位数据类型的距离。 特定于服务中工具的 REST URL 将定义输入参数。 服务将设置为同步或异步,此设置将用于控制服务是作为作业提交还是作为任务运行。 各工具的输出在与输入页面相同的页面有所说明;提供了关于类型和显示方式的相关信息。
Web AppBuilder 中的 Web 工具
要将 Web 工具与 Web AppBuilder 配合使用,只需要该 Web 工具的服务 URL;无需任何代码。 此 URL 显示在门户工具项目详细信息页面的 URL 部分中。
要在 Web AppBuilder 中使用 web 工具,需要配置地理处理微件。 首先在门户中创建 web 应用程序。 选择样式和地图后,添加地理处理微件并对其进行配置。
微件配置支持设置与 web 工具相关的输入和输出选项。 定义 web 工具的输入参数和输出参数确定了可通过微件配置使用的选项。 例如,如果已发布 web 工具以接受要素输入,微件配置允许您控制用户可输入的要素类型(方形、圆形、手绘等等)。 相同的前提也适用于输出。 设置为输出要素的 web 工具允许您配置符号系统和 web 应用程序渲染 web 工具输出的方式。 已配置结果地图图层的 web 工具会将结果添加至 web 应用程序并根据初始发布过程中指定的设置对其进行符号化。
注:
请勿使用 Web AppBuilder 构建新应用程序。 如果您拥有现有 Web AppBuilder 应用程序,请考虑将其迁移至 ArcGIS Experience Builder。
ArcGIS Experience Builder 中的 Web 工具和地理处理服务
将 web 工具发布到 ArcGIS Enterprise 11.3 或更高版本时,需要在将 web 工具添加为实用工具服务后使用分析微件。 大多数输入和输出参数都可以在分析微件中使用。
可以配置输入和输出参数行为,例如允许或禁止输入要素参数的草图功能,以及显示或隐藏某些输入和输出。 可以将分析微件中的多个 Web 工具添加为实用工具服务。 有关 Experience Builder 的详细信息,请参阅创建您的首次 Web 体验。
注:
Map Viewer 在使用 ArcGIS Server 的独立服务器上不可用。
要在 ArcGIS Online 中使用 ArcGIS Experience Builder,或者在与 Experience Builder 不同的环境中使用 Web 工具和地理处理服务,请在添加实用工具时添加独立地理处理服务的 URL,或者 Web 工具的地理处理服务,例如 https://organization.example.com/<context>/rest/services/<serviceName>/GPServer。 请勿提供地理处理服务的单个任务的 URL 或者 Web 工具门户项目的 URL。 确保可通过 ArcGIS Online 或门户访问地理处理服务。
Map Viewer 中的 web 工具和地理处理服务项目
将 web 工具发布到 ArcGIS Enterprise 11.3 或更高版本时,请从门户打开 Map Viewer 并在分析功能区的工具部分中浏览自定义工具。 要在 Map Viewer 中运行 web 工具,必须满足许可要求。 有关 Map Viewer 中 web 工具的详细信息,请参阅使用自定义 Web 工具。 请注意,Map Viewer 在运行 ArcGIS Server 的独立服务器上不可用。
如果地理处理服务位于运行 ArcGIS Server 的独立服务器上或者与 Map Viewer 不同的门户上,请先将该地理处理服务添加至 Map Viewer 的门户。 为此,请提供服务 URL(例如 https://organization.example.com/<context>/rest/services/<serviceName>/GPServer)以添加项目。 请勿提供地理处理服务的单个任务的 URL 或者 web 工具门户项目。
要在 ArcGIS Online 中使用 Map Viewer,请通过提供独立地理处理服务的服务 URL 或者 web 工具的地理处理服务(例如 https://organization.example.com/<context>/rest/services/<serviceName>/GPServer)以通过 URL 添加服务。 请勿提供地理处理服务的单个任务的 URL。 确保可通过始终位于组织防火墙之外的 ArcGIS Online 访问地理处理服务。