Skip To Content

使用 URL 参数

使用 Web AppBuilder 创建的应用程序可直接通过 URL 参数进行修改。URL 通常以 <your portal url>/apps/webappviewer/index.html? 开头,并且包含下面列出的一个或多个参数。要包含多个参数,请使用“与”号 (&) 分隔参数。示例如下:

http://<your portal url>/apps/webappviewer/index.html?id=6815e148ff1c4aee8dc7159816380a4d&webmap=9cf053ea602345ddae060010c470e615
提示:

现在,为构建 URL 参数提供了一种更为轻松的方法。在应用程序中添加“共享”微件,然后单击链接选项链接预览会显示您选择的参数,并自动为您生成一个包含 URL 参数的快捷方式链接。请注意,必须在应用程序中启用“搜索”微件才能使用 find 参数。

注:

3D 应用程序目前不支持 URL 参数。

对查询参数进行编码

必须对所有查询参数进行编码。编码使用 % 后跟其等效的十六进制数来替换所有无效的字符。

例如,以下是一串未编码的 URL 参数:

http://<your portal url>/apps/webappviewer/index.html?find=380 new york street, redlands, ca

下面是同一个已编码的参数:

http://<your portal url>/apps/webappviewer/index.html?find=380%20new%20york%20street,%20redlands,%20ca

Web 中提供了许多用于生成编码 URL 的免费站点和工具。例如,Albion Research Ltd. 的 URLEncode and URLDecode Page。为方便阅读,将不再对本主题中的其余示例进行编码。

打开保存的应用程序

要打开使用 Web AppBuilder 创建的已保存应用程序,请使用 id= 和该应用程序的唯一 ID,如以下示例所示:

http://<your portal url>/apps/webappviewer/index.html?id=6815e148ff1c4aee8dc7159816380a4d

定义 web 地图

要定义 web 地图,请使用 webmap= 和 web 地图的唯一 ID,如以下示例所示:

http://<your portal url>/apps/webappviewer/index.html?webmap=9cf053ea602345ddae060010c470e615

居中地图

要将地图放在特定位置的中央,可通过地理坐标 (x,y) 或投影坐标 (x,y,WKID) 设置 center=

警告:

您可以使用逗号或分号作为分隔符。如果数字使用冒号作为小数位, 则使用分号。

下面是一个地理坐标示例:

http://<your portal url>/apps/webappviewer/index.html?center=34,-50

下面是一个投影坐标示例:

http://<your portal url>/apps/webappviewer/index.html?center=500000,5500000,102100

定义比例级别

要定义地图的比例级别,请使用 center=level= 参数。level 参数接受地图服务 REST 端点中列出的缓存比例的级别 ID。示例如下:

http://<your portal url>/apps/webappviewer/index.html?center=20,45&level=4

定义比例

要定义地图的比例,请使用 center=scale= 参数。scale 参数接受地图服务 REST 端点中列出的缓存比例。示例如下:

http://<your portal url>/apps/webappviewer/index.html?center=20,45&scale=4622324

定义范围

使用 extent= 定义地图范围。extent 参数接受以 MinX,MinY,MaxX,MaxY 的形式使用地理坐标系 (GCS),以 MinX,MinY,MaxX,MaxY,WKID 的形式使用投影坐标 (PCS),或以 MinX,MinY,MaxX,MaxY,WKT 的形式使用熟知文本字符串 (WKT)。您可以使用逗号或分号作为分隔符。如果数字使用冒号作为小数位,则使用分号。

下面是一个地理坐标示例:

http://<your portal url>/apps/webappviewer/index.html?extent=-117.20,34.055,-117.19,34.06

下面是一个投影坐标示例:

http://<your portal url>/apps/webappviewer/index.html?extent=-13079253.954115,3959110.38566837,-12918205.318785,4086639.70193162,102113

下面是一个熟知文本字符串示例:

http://<your portal url>/apps/webappviewer/index.html?extent=1008562.1255,1847133.031,1060087.7901,1877230.7859,wkt=PROJCS["NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]]

查找位置或要素以打开地图

要查找用于打开地图的位置或功能,请使用 find=。地图会自动缩放到最接近的匹配位置,并向地图中添加注释标记。find 参数接受单行地址、部分地址(例如仅城市或仅国家/地区)、地名、经纬度坐标以及可搜索图层中的要素(如宗地标识号 (PIN) 1916352001)。示例如下:

http://<your portal url>/apps/webappviewer/index.html?find=380 new york street, redlands, ca
警告:

必须对所有查询参数进行编码,并且必须在应用程序中启用“搜索”微件才能使用此参数。

添加点

要向地图添加点,请使用 marker=<x>,<y>。以指定的 x 和 y 位置将点添加到地图中。还可以添加以下可选属性:

  • <wkid> - 添加到地图的 x,y 坐标的空间参考。如果不包含 WKID,则使用 GCS 坐标。
  • <encoded title> - 点弹出窗口的标题。如果不包含标题,则该弹出窗口将为空。
  • <encoded icon URL> - 点符号。如果不包含符号,则使用蓝色标记符号。
  • <encoded label> - 点符号旁的标注。

应考虑下列几点:

  • 需要 <x> 和 <y>。
  • 请确保对标题、图标和标注参数编码。
  • 您必须按此顺序添加属性:marker=<x>、<y>、<wkid>、<encoded title>、<encoded icon URL>、<encoded label>。
  • 您可以使用逗号或分号作为分隔符。如果数字使用冒号作为小数位,则使用分号。
  • 使用空值。不要使用空格。例如,如果希望指定标注且不指定任何其他可选属性,则请将标注添加为第六个参数,同时其他参数为空值 (x;y;;;;label)。
  • 如果希望地图放大(同时该点居中),则添加 level= 参数。

示例如下:

http://<your portal url>/apps/webappviewer/index.html?marker=-79.234826;38.147884;;Race start and finish;;Grindstone 100 Ultra Marathon&level=7

查询要素

要查询要素并缩放至该要素,您可使用下列选项之一:

  • query=<layer name>,<field name>,<field value>
  • query=<layer name>, <where clause>
  • query=<layer id>,<field name>,<field value>
  • query=<layer id>, <where clause>
提示:

现在介绍一种以交互方式构建 URL 参数的方法。在应用程序中添加“共享”微件,然后单击链接选项。选择查询要素并缩放至该要素选项,然后选择要查询的图层、字段和字段值。复制包含指定 URL 参数的链接预览中的 URL。如果不再需要“共享”微件,请将其从应用程序中移除。

警告:

所有查询参数均区分大小写且必须被编码。

Where 子句遵照 SQL 标准。例如,当 where 子句包含 IN 操作时,请不要使用逗号将 where 子句中的图层名称或 ID 隔开,而应该使用分号(如下所示)。这是因为逗号在 where 子句中专门用于构建值列表,例如 ('A11', 'A12', 'A13) 或 ('Charlotte', 'Chicago')。这样就可以正确解析查询参数,以区分图层和 where 子句。

  • query=<layer name>; <where clause>
  • query=<layer id>; <where clause>

由于图层名称可更改,强烈建议您使用图层 ID 进行查询。您可从 Web 地图 ID 中检索图层 ID,如下图所示:http://<your portal url>/sharing/rest/content/items/32a83775654249dcae6b8f2eff5d4072/data/?f=pjson

警告:

检索图层 ID 时,请确保 web 地图已公开共享

例如,如下所示,图层以 JSON 格式被单独添加到地图中。图层 ID 是 Census_8491、字段名称为 POP2000,字段值为 1211537。您可执行以下查询:

id: "Census_8491",
layerType: "ArcGISFeatureLayer",
url: "http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3",
visibility: true,
opacity: 1,
mode: 1,
title: "Census - states",

http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,POP2000,1211537
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,POP2000=1211537

您还可以查询字符串或 ObjectID 字段。

http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,STATE_NAME,California
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,STATE_NAME='California'
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,OBJECTID,1

图层通常以地图服务组的形式添加。要查询组中的子图层,请将 <layer id_sublayer id> 用作图层 ID。以下列图层为例,图层 ID 为 Census_3217,子图层 ID 索引为 3。子图层的图层 ID 应该为 Census_3217_3。您可执行以下查询:

id: "Census_3217", layerType: "ArcGISMapServiceLayer", url: "http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer", visibility: true, opacity: 1,
title: "Census"

http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_3217_3,POP2000,1211537
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_3217_3,POP2000=1211537
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491;STATE_NAME in ('California', '')

切换区域设置

要切换应用程序语言,请使用 locale=<language code>。支持下列语言代码:ar、cs、da、de、en、el、es、et、fi、fr、he、it、ja、ko、lt、lv、nb、nl、pl、pt-br、pt-pt、ro、ru、sv、th、tr、zh-cn、vi、zh-hk 和 zh-tw。

示例如下:

http://<your portal url>/apps/webappviewer/index.html?locale=fr

控制打开移动布局的时间

该应用程序支持两种基于屏幕尺寸的布局样式。一种适用于桌面,另一种适用于移动设备。当屏幕显示的高度或宽度小于 600 像素时,将自动应用移动布局。但是,这可能会导致应用程序嵌入到网站中时出现异常行为,例如,当网站中的弹出窗口采用移动布局样式时。要控制布局样式,请使用 mobileBreakPoint=<pixel number>。例如,如下所示,只要屏幕尺寸不小于 300 像素,则可一直使用桌面样式:

http://<your portal url>/apps/webappviewer/index.html?mobileBreakPoint=300