使用 URL 参数修改地图

使用 Map Viewer 制作的地图包含底图、数据图层、范围、图例以及导航工具(如缩放工具、平移工具、地点查找器和书签)。许多地图还包含交互式元素,例如底图库、测量工具、弹出窗口以及显示随时间变化的数据的按钮。

除了使用 Map Viewer 创建地图,您还可以通过 URL 参数直接创建并修改地图。

例如,以下为通过 URL 参数构建地图的方法,该地图显示的是英国的陆上风力发电厂。

https://myportal.domain.com/arcgis/home/webmap/viewer.html?basemapUrl=http%3A%2F%2Fservices.arcgisonline.com%2FArcGIS%2Frest%2Fservices%2FOcean_Basemap%2FMapServer&url=http%3A%2F%2Fservices.arcgis.com%2FWQ9KVmV6xGGMnCiQ%2Farcgis%2Frest%2Fservices%2FOnshore_Windfarms%2FFeatureServer&extent=-24.3161%2C45.2274%2C18.0911%2C63.5381

URL 中包含的内容

URL 通常以 ArcGIS Enterprise 门户主页开头,外加 /webmap/viewer.html? 以及如下所列的一个或多个查询参数。 要包含多个参数,请使用“与”号 (&) 分隔参数。

例如:

https://myportal.domain.com/arcgis/home/webmap/viewer.html?center=20,45&level=4
注:

如果将 URL 参数中的任何资源作为 HTTP 提供,则地图的 URL 也应为 HTTP。为了提高安全性,应尽可能使用 HTTPS URL。

对查询参数进行编码

必须对所有查询参数进行编码。URL 编码可确保将有效的字符发送至门户网站。编码使用 % 后跟其等效的十六进制数来替换所有无效的字符。

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

basemapUrl=https://myportal.domain.com:7443/arcgis/rest/services/Ocean_Basemap/MapServer

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

basemapUrl=http%3A%2F%2Fmyportal.domain.com:7443%2Farcgis%2Frest%2Fservices%2FOcean_Basemap%2FMapServer

同时还必须对参数中的参数进行编码,例如:

urls=https%3A%2F%2Fmyportal.domain.com:7443%2Farcgis%2Frest%2Fservices%2Fweb_mercator%2Ftrackline_gravity%2FMapServer%2Chttp%3A%2F%2Fmaps.ngdc.noaa.gov%2Frest%2Fservices%2Fweb_mercator%2Fhazards%2FMapServer%3Flayers%3Dshow%3A5%2C6

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

打开保存的地图

要打开使用 Map Viewer 创建的已保存地图,请使用 webmap= 和地图的唯一 ID。

例如:

https://myportal.domain.com/arcgis/home/webmap/viewer.html?webmap=8505192e747d440098523e9e64419710

定义底图

要定义底图,请将 basemapUrl= 设置为图层。如果未定义底图,则默认底图为世界地形图的底图。

例如:

https://myportal.domain.com/arcgis/home/webmap/viewer.html?basemapUrl=https://services.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer

包含参考图层

要在底图中包含一个参考图层,请将 basemapReferenceUrl= 设置为图层。除 basemapUrl 参数外,必须使用 basemapReferenceUrl= 参数。

例如:

https://myportal.domain.com/arcgis/home/webmap/viewer.html?
basemapUrl=https://services.myportal.domain.com:7443/arcgis/rest/services/World_Imagery/MapServer
&basemapReferenceUrl=http://services.myportal.domain.com:7443/arcgis/rest/services/Reference/World_Boundaries_and_Places/MapServer

定义业务图层

要定义叠加底图的业务图层,可使用 webmap=layers=url=urls=。如果图层是网站中的项目,可使用 layers= 获取所有图层配置。如果图层不在网站中,可使用 url=urls=

layers= 参数接受单个项目 ID 或多个项目 ID。对于多个图层,可使用以逗号分隔的 ID 列表 (&layers=<itemID>,<itemID>,<itemID>)。

例如:

https://myportal.domain.com/arcgis/home/webmap/viewer.html?layers=a79a3e4dc55343b08543b1b6133bfb90,a068913914cd4fecb302b9207a532d1a

url= 参数接受单个图层 URL。

例如:

https://myportal.domain.com/arcgis/home/webmap/viewer.html?
     url=https://services.myportal.domain.com:7443/arcgis/rest/services/Demographics/USA_Population_Density/MapServer

使用 urls= 包括多个图层。使用逗号对多个图层加以分隔。地图范围基于列表中的最新图层或加载最慢的图层。要缩放至特定的范围,应包含 extent= 参数。

例如:

https://myportal.domain.com/arcgis/home/webmap/viewer.html?urls=https://services.myportal.domain.com:7443/arcgis/rest/services/web_mercator/trackline_gravity/MapServer,https://maps.ngdc.noaa.gov/rest/services/web_mercator/hazards/MapServer?layers=show:5,6,12&extent=5,45,10,50

从 ArcGIS 10.5 起,您可以对要素服务使用 ?layers 操作。

例如:

http://myportal.domain.com/arcgis/home/webmap/viewer.html?url=https://sampleserver6.arcgisonline.com/arcgis/rest/services/RedlandsEmergencyVehicles/FeatureServer?layers=show:1,2

定义比例级别并使地图居中

当您使用 webmapfind 参数时,Map Viewer 中的地图会自动设置比例。如果您使用的是 webmap 参数,除非使用其他 URL 参数(例如 levelcenterextent)覆盖 Web 地图比例,否则地图会自动缩放至全图范围。如果使用 find 参数,地图会自动缩放至找到位置的最佳范围。

要定义特定的比例级别,请使用 centerlevel 参数。level 参数接受切片底图 REST 服务端点中列出的缓存比例的级别 ID。该分辨率与比例成反比。level 参数仅支持切片底图,而不支持通过动态地图服务和其他非切片数据创建的底图。

要将地图放在特定位置的中央,可通过地理坐标 (x,y) 或投影坐标 (x,y,WKID) 设置 center。您可以使用逗号或分号作为分隔符。如果数字使用冒号作为小数位,则使用分号。

注:

levelcenter 参数必须一起使用。如果单独使用 level 参数,则将忽略此参数。

地理坐标示例:

https://myportal.domain.com/arcgis/home/webmap/viewer.html?center=20,45&level=4

投影坐标示例:

https://myportal.domain.com/arcgis/home/webmap/viewer.html?center=500000,5500000,102100&level=4

定义范围

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

地理坐标示例:

https://myportal.domain.com/arcgis/home/webmap/viewer.html?extent=-117.20,34.055,-117.19,34.06

投影坐标示例:

https://myportal.domain.com/arcgis/home/webmap/viewer.html?extent=-13079253.954115,3959110.38566837,-12918205.318785,4086639.70193162,102113

设置图层可见性

要设置地图中图层的可见性,请使用 layers=show:

例如:

https://myportal.domain.com/arcgis/home/webmap/viewer.html?url=https://otherportal.domain.com:7443/arcgis/rest/services/BloomfieldHillsMichigan/Parcels/MapServer?layers=show:1,2

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

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

下列示例使用的是单行地址。

https://myportal.domain.com/arcgis/home/webmap/viewer.html?find=380 new york st,redlands,ca

添加点

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

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

注意事项

向地图添加点时,请注意以下几点:

  • 需要 <x>,<y>
  • 请确保对 titleiconlabel 参数编码
  • 必须按以下顺序添加属性:marker=<x>,<y>,<wkid>,<encoded title>,<encoded icon URL>,<encoded label>
  • 您可以使用逗号或分号作为分隔符。如果数字使用冒号作为小数位,则使用分号。
  • 使用空值。不要使用空格。例如,如果希望指定标注且不指定任何其他可选属性,则请将标注添加为第六个参数,同时其他参数为空值 (x;y;;;;label)。
  • 如果希望地图放大(同时该点居中),则添加 level 参数。
  • 您可以编辑地图注释图层并将其保存为地图或项目。
  • 组织帐户可使用该点获取方向以及执行分析

示例

下列示例使用的是分号分隔符:

https://myportal.domain.com/arcgis/home/webmap/viewer.html?marker=-79.234826;38.147884;;Race start and finish;;Grindstone 100 Ultra Marathon&level=7

隐藏“详细信息”窗格

要隐藏 Map Viewer详细信息窗格,请使用 mapOnly=true

例如:

https://myportal.domain.com/arcgis/home/webmap/viewer.html?webmap=b487d81007294fb5a0be9e10a411f2d0&mapOnly=true