使用 URL 参数创建和修改地图

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

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

例如,可通过 URL 参数构建地图,该地图显示的是马里兰沿岸的浅滩。

myportal.domain.com/arcgis/apps/mapviewer/index.html?basemapUrl=https://services.arcgisonline.com/ArcGIS/rest/services/Ocean_Basemap/MapServer&url=https://services5.arcgis.com/9cBkZtsx7PSOoaCF/arcgis/rest/services/Maryland_Shoals/FeatureServer/0

您可通过 URL 参数构建地图,该地图在 Map Viewer 经典版中显示的是英国的陆上风力发电厂。

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

例如,您可以在以下情况下使用地图查看器 URL:

  • 如果您不需要包含大量参考或业务图层,并且不需要将特定样式应用于地图内容,请使用 URL 打开其中一个地图查看器。 例如,如果您的网站允许人们查找地址或查看与站点相关的单个图层,您可以在网站中包含一个链接,该链接将打开具有指定底图和所需的单个图层的 Map Viewer
  • 您需要从网站或电子邮件链接到已保存的 web 地图。 您可以使用 URL 打开特定 web 地图。

URL 中包含的内容

Map Viewer 经典版中,URL 通常以 ArcGIS Enterprise 门户主页 URL 开头,加上 /webmap/viewer.html? 以及如下所列的一个或多个查询参数。 在 Map Viewer 中,URL 通常以完全限定 ArcGIS Enterprise 名称和 Web 适配器或负载均衡器上下文开头,外加 apps/mapviewer/index.html? 以及如下所列的一个或多个查询参数。 要包含多个参数,请使用“与”号 (&) 分隔参数。 您将在本页中找到使用多个参数的示例。

以下第一个示例将打开 Map Viewer;第二个示例将打开 Map Viewer 经典版

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

https://myportal.domain.com/arcgis/apps/mapviewer/index.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=https%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%2Chttps%3A%2F%2Fmaps.ngdc.noaa.gov%2Frest%2Fservices%2Fweb_mercator%2Fhazards%2FMapServer%3Flayers%3Dshow%3A5%2C6

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

打开保存的地图

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

在第一个示例中,ID 为 8505192e747d440098523e9e64419710 的 web 地图将在 Map Viewer 经典版 中打开。 第二个 URL 将在 Map Viewer 中打开相同的地图。

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

https://myportal.domain.com/arcgis/apps/mapviewer/index.html?webmap=8505192e747d440098523e9e64419710

在此示例中,ID 为 29990ur6423j1180p53f9t30019491 的 web 地图将在 Map Viewer 中打开,且范围设置为 -117.996342,33.841078,-117.993692,33.844375:

https://myportal.domain.com/arcgis/apps/mapviewer/index.html?webmap=29990ur6423j1180p53f9t30019491&extent=-117.996342,33.841078,-117.993692,33.844375

定义底图

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

在第一个示例 URL 中,Map Viewer 将打开,并将世界自然地图用作底图。 第二个示例 URL 将在 Map Viewer 经典版 中将其打开。

https://myportal.domain.com/arcgis/apps/mapviewer/index.html?basemapUrl=https://services.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer

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

在此示例中,Map Viewer 打开时将世界自然地图用作底图,并且地图中存在项目 ID 为 d35a5w4bo77593y0358s0x7312jpp04 的业务图层:

https://myportal.domain.com/arcgis/apps/mapviewer/index.html?basemapUrl=https://services.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer&layers=d35a5w4bo77593y0358s0x7312jpp04

包含参考图层

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

在此示例中,Map Viewer 经典版 打开时存在 World Imagery 地图图像图层,且底图设置为 World Boundary and Places 图层:

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

定义业务图层

要定义叠加底图的业务图层,可使用 webmap=layers=layerIds=url=urls=。 如果图层是网站中的项目,可使用 layers= 获取所有图层配置。 要从包含多个子图层的要素图层添加各个子图层,请使用 layerIds=。 如果图层不在网站中,可使用 url=urls=

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

第一个示例将在 Map Viewer 中打开。 第二个示例将在 Map Viewer 经典版 中打开:

https://myportal.domain.com/arcgis/apps/mapviewer/index.html?layers=a79a3e4dc55343b08543b1b6133bfb90,a068913914cd4fecb302b9207a532d1a

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

layerIds= 参数接受单个图层 ID 或多个图层 ID。 如果要素图层包含多个子图层,使用 layerIds= 参数添加各个子图层。 对于多个子图层,使用逗号分隔 ID 列表 (&layerIds=0,1,2)。

第一个示例将在 Map Viewer 中打开。 第二个示例将在 Map Viewer 经典版 中打开:

https://myportal.domain.com/arcgis/apps/mapviewer/index.html?layers=025063719c32408dbd4fb608faa28d2a&layerIds=0,2
https://myportal.domain.com/arcgis/home/webmap/viewer.html?layers=025063719c32408dbd4fb608faa28d2a&layerIds=0,2

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= 参数。

第一个 URL 将在 Map Viewer 中打开地图。 第二个 URL 将在 Map Viewer 经典版 中打开:

https://myportal.domain.com/arcgis/apps/mapviewer/index.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

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 操作。

例如:

https://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 参数,则将忽略此参数。

Map Viewer 中的地理坐标示例:

https://myportal.domain.com/arcgis/apps/mapviewer/index.html?center=20,45&level=4

Map Viewer 经典版 中的地理坐标示例:

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

Map Viewer 中的投影坐标示例:

https://myportal.domain.com/arcgis/apps/mapviewer/index.html?center=500000,5500000,102100&level=4

定义范围

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

Map Viewer 中的地理坐标示例:

https://myportal.domain.com/arcgis/apps/mapviewer/index.html?extent=-117.20,34.055,-117.19,34.06

Map Viewer 中的投影坐标示例:

https://myportal.domain.com/arcgis/apps/mapviewer/index.html?extent=-13079253.954115,3959110.38566837,-12918205.318785,4086639.70193162,102113

Map Viewer 经典版 中的投影坐标示例:

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

设置图层可见性

要为您在地图中打开的图层设置子图层的可见性,请使用 layers=show:

在此示例中,Parcels 图层中的子图层 1 和 2 在 Map Viewer 经典版 中可见,但其他子图层不可见:

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 参数接受单行地址、部分地址(例如仅城市或仅国家/地区)、地名和经纬度坐标。

Map Viewer 中,下列示例使用的是单行地址:

https://myportal.domain.com/arcgis/apps/mapviewer/index.html?find=380 new york st,redlands,ca
提示:

要在可搜索图层中查找位置或要素,可以在唯一的地图 ID 中包含 webmap= 参数

添加点

要向地图添加点,请使用 marker=<x>,<y>。 还可以添加以下可选属性:

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

示例

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

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

隐藏“详细信息”窗格

注:

目前,此功能仅在 Map Viewer 经典版(之前称为 Map Viewer)中受支持。 该功能将在新 Map Viewer 的未来版本中提供。

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

在此示例中,ID 为 b487d81007294fb5a0be9e10a411f2d0 的已保存 web 地图在 Map Viewer 经典版中打开,但“详细信息”窗格被隐藏:

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