使用 Map Viewer 或 Map Viewer 经典版制作的地图包含底图、数据图层、范围、图例以及导航工具(如缩放工具、平移工具、地点查找器和书签)。 许多地图还包含交互式元素,例如底图库、测量工具、弹出窗口以及显示随时间变化的数据的按钮。
除了使用 Map Viewer 或 Map Viewer 经典版创建地图,您还可以通过 URL 参数直接创建并修改地图。
例如,您可以使用显示生物群落和生态区的 URL 参数构建地图。
https://www.arcgis.com/apps/mapviewer/index.html?basemapUrl=https://basemaps.arcgis.com/arcgis/rest/services/World_Basemap_v2/VectorTileServer&url=https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/Resolve_Ecoregions/FeatureServer
例如,您可以在以下情况下使用 Map Viewer URL:
- 如果您不需要包含大量参考或业务图层,并且不需要将特定样式应用于地图内容,请使用 URL 打开 Map Viewer。 例如,如果您的网站允许用户查找地址或查看与站点相关的单个图层,您可以在网站中包含一个链接,该链接将打开具有指定底图和所需的单个图层的 Map Viewer。
- 您需要从网站或电子邮件链接到已保存的 web 地图。 您可以使用 URL 打开特定 web 地图。
URL 中包含的内容
在 Map Viewer 经典版的 Map Viewer 和 https://www.arcgis.com/home/webmap/viewer.html? 中,URL 通常以 https://www.arcgis.com/apps/mapviewer/index.html? 开头,并包含如下所列的一个或多个查询参数。 要包含多个参数,请使用“与”号 (&) 分隔参数。 您将在本页中找到使用多个参数的示例。
请参阅以下示例:
https://www.arcgis.com/apps/mapviewer/index.html?center=20,45&level=8
注:
如果将 URL 参数中的任何资源作为 HTTP 提供,则必须在 URL 中将 HTTP 替换为 HTTPS,并且仅使用 HTTPS 访问所有资源。
对查询参数进行编码
必须对所有查询参数进行编码。 URL 编码可确保将有效的字符发送至 ArcGIS Online。 编码使用 % 后跟其等效的十六进制数来替换所有无效的字符。
例如,以下是一串未编码的 URL 参数:basemapUrl=https://services.arcgisonline.com/ArcGIS/rest/services/Ocean/World_Ocean_Base/MapServer
下面是同一个已编码的参数:basemapUrl=https%3A%2F%2Fservices.arcgisonline.com%2FArcGIS%2Frest%2Fservices%2FOcean%2FWorld_Ocean_Base%2FMapServer
同时还必须对参数中的参数进行编码,例如:urls=https%3A%2F%2Fmaps.ngdc.noaa.gov%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 的免费站点和工具,例如,https://www.urlencoder.io/。 为方便阅读,将不再对本主题中的其余示例进行编码。 单击示例后的在 Map Viewer 中查看此示例链接,可在 Web 浏览器中查看已编码的 URL。
打开保存的地图
要打开使用 Map Viewer 或 Map Viewer 经典版创建的已保存地图,请使用 webmap= 和地图的唯一 ID。
在此示例中,ID 为 75a3ce8990674a5ebd5b9ab66bdab893 的 web 地图将在 Map Viewer 中打开:
https://www.arcgis.com/apps/mapviewer/index.html?webmap=75a3ce8990674a5ebd5b9ab66bdab893
在此示例中,ID 为 29990ur6423j1180p53f9t30019491 的 web 地图将在 Map Viewer 中打开,且范围设置为 -117.996342,33.841078,-117.993692,33.844375:
https://www.arcgis.com/apps/mapviewer/index.html?webmap=29990ur6423j1180p53f9t30019491&extent=-117.996342,33.841078,-117.993692,33.844375
定义底图
要定义底图,请将 basemapUrl= 设置为图层。 如果未定义底图,则将使用默认底图(世界地形图的底图)。
在此示例中,Map Viewer 将打开,并将 OpenStreetMap 用作底图:
https://www.arcgis.com/apps/mapviewer/index.html?basemapUrl=https://basemaps.arcgis.com/arcgis/rest/services/OpenStreetMap_v2/VectorTileServer&layers=9e2f2b544c954fda9cd13b7f3e6eebce
在此示例中,Map Viewer 打开时将世界自然地图用作底图,并且地图中存在项目 ID 为 9e2f2b544c954fda9cd13b7f3e6eebce 的业务图层:
https://www.arcgis.com/apps/mapviewer/index.html?basemapUrl=https://services.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer&layers=9e2f2b544c954fda9cd13b7f3e6eebce
包含参考图层
要在底图中包含一个参考图层,请将 basemapReferenceUrl= 设置为图层。 除 basemapUrl 参数外,必须使用 basemapReferenceUrl= 参数。
在此示例中,Map Viewer 打开时使用 World Imagery 底图图层,并将参考图层设置为 World Boundaries and Places 图层:
https://www.arcgis.com/apps/mapviewer/index.html?basemapUrl=https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer&basemapReferenceUrl=https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places/MapServer
在此示例中,Map Viewer 打开时存在 World Imagery 地图图像图层,且底图设置为 World Imagery 底图图层:
https://www.arcgis.com/apps/mapviewer/index.html?basemapUrl=https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer&basemapReferenceUrl=https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places/MapServer&layers=df610ec7afe74b1995a913ec1fc1284e
定义业务图层
要定义叠加底图的业务图层,可使用 webmap=、layers=、layerIds=、url= 或 urls=。 如果图层是网站中的项目,可使用 layers= 获取所有图层配置。 要从包含多个子图层的要素图层添加各个子图层,请使用 layerIds=。 如果图层不在网站中,可使用 url= 或 urls=。
layers= 参数接受单个项目 ID 或多个项目 ID。 对于多个图层,可使用以逗号分隔的 ID 列表 (&layers=<itemID>,<itemID>,<itemID>)。
请参阅以下示例:
https://www.arcgis.com/apps/mapviewer/index.html?webmap=8152694dd9594393a1db4d62d2020fe3&layers=9e2f2b544c954fda9cd13b7f3e6eebce,dece90af1a0242dcbf0ca36d30276aa3
layerIds= 参数接受单个图层 ID 或多个图层 ID。 如果要素图层包含多个子图层,使用 layerIds= 参数添加各个子图层。 对于多个子图层,使用逗号分隔 ID 列表 (&layerIds=0,1,2)。
请参阅以下示例:
https://www.arcgis.com/apps/mapviewer/index.html?layers=025063719c32408dbd4fb608faa28d2a&layerIds=0,2
url= 参数接受单个图层 URL。
请参阅以下示例:
https://www.arcgis.com/apps/mapviewer/index.html?url=https://services9.arcgis.com/RHVPKKiFTONKtxq3/arcgis/rest/services/USGS_Seismic_Data_v1/FeatureServer
使用 urls= 包括多个图层。 使用逗号对多个图层加以分隔。 地图范围基于列表中的最新图层或加载最慢的图层。 要缩放至特定的范围,应包含 extent= 参数。
请参阅以下示例:
https://www.arcgis.com/apps/mapviewer/index.html?urls=https://services9.arcgis.com/RHVPKKiFTONKtxq3/arcgis/rest/services/NOAA_METAR_current_wind_speed_direction_v1/FeatureServer,https://services9.arcgis.com/RHVPKKiFTONKtxq3/arcgis/rest/services/NOAA_storm_reports_v1/FeatureServer?layers=show:4&extent=-108,40,-85,31
定义比例级别并使地图居中
当您使用 webmap 或 find 参数时,Map Viewer 经典版 中的地图会自动设置比例。 如果您使用的是 webmap 参数,除非使用其他 URL 参数(例如 level 和 center 或 extent)覆盖 Web 地图比例,否则地图会自动缩放至全图范围。 如果使用 find 参数,地图会自动缩放至找到位置的最佳范围。
要定义特定的比例级别,请使用 center 和 level 参数。 level 参数接受切片底图 REST 服务端点中列出的缓存比例的级别 ID。 该分辨率与比例成反比。 level 参数仅支持切片底图,而不支持通过动态地图服务和其他非切片数据创建的底图。
要将地图放在特定位置的中央,可通过地理坐标 (x,y) 或投影坐标 (x,y,WKID) 设置 center。 您可以使用逗号或分号作为分隔符。 如果数字使用逗号作为小数位,则使用分号。
注:
level 和 center 参数必须一起使用。 如果单独使用 level 参数,则将忽略此参数。
请参阅以下地理坐标示例:
https://www.arcgis.com/apps/mapviewer/index.html?center=20,45&level=4
请参阅以下投影坐标示例:
https://www.arcgis.com/apps/mapviewer/index.html?center=500000,5500000,102100&level=4
定义范围
使用 extent 定义地图范围。 extent 参数以 MinX,MinY,MaxX,MaxY 的形式使用地理坐标 (GCS),以 MinX,MinY,MaxX,MaxY,WKID 的形式使用投影坐标 (PCS)。 您可以使用逗号或分号作为分隔符。 如果数字使用逗号作为小数位,则使用分号。
请参阅以下地理坐标示例:
https://www.arcgis.com/apps/mapviewer/index.html?extent=-117.20,34.055,-117.19,34.06
请参阅以下投影坐标示例:
https://www.arcgis.com/apps/mapviewer/index.html?extent=-13079253.954115,3959110.38566837,-12918205.318785,4086639.70193162,102113
设置图层可见性
要为您在地图中打开的图层设置子图层的可见性,请使用 layers=show:。
在此示例中,子图层 3 可见,但其他子图层不可见:
注:
如 REST 端点所示,子层编号从零 (0) 开始。https://www.arcgis.com/apps/mapviewer/index.html?url=https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/BLS_Monthly_Unemployment_Current_14_Months/FeatureServer?layers=show:2&find=Pennsylvania
查找位置或要素以打开地图
要在打开地图后立即查找位置或要素,请使用 find。 地图会自动缩放到最接近的匹配位置,并向地图中添加注释标记。 该 find 参数接受单行地址、部分地址(例如仅城市或仅国家/地区)、地名、经纬度坐标以及可搜索图层中的要素(如宗地标识号 (PIN) 1916352001)。
下列示例使用的是单行地址:
https://www.arcgis.com/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://www.arcgis.com/apps/mapviewer/index.html?marker=-79.234826;38.147884;;Race start and finish;;Grindstone 100 Ultra Marathon
注意事项
向地图添加点时,请注意以下几点:
- 在 Map Viewer 经典版中,点以指定的 x,y 位置坐标添加到新的地图注释图层中。
- 添加点需要 <x>,<y> 坐标。
- 您必须对 title、icon 和 label 参数进行编码。
- 必须按以下顺序添加属性:marker=<x>,<y>,<wkid>,<encoded title>,<encoded icon URL>,<encoded label>。
- 您可以使用逗号或分号作为分隔符。 如果数字使用逗号作为小数位,则使用分号。
- 使用空值。 不要使用空格。 例如,要指定标注且不指定任何其他可选属性,请将标注添加为第六个参数,同时其他参数为空值 (x;y;;;;label)。
- 如果希望地图放大(同时该点居中),则添加 level 参数。
- 您可以编辑地图注释图层并将其保存为地图或项目。
- 组织账户可使用该点获取方向以及执行分析。
隐藏“详细信息”窗格
注:
目前,此功能仅在 Map Viewer 经典版 中受支持。 该功能将在 Map Viewer 的未来版本中提供。
要隐藏 Map Viewer 经典版的详细信息窗格,请使用 mapOnly=true。
在此示例中,ID 为 8505192e747d440098523e9e64419710 的已保存 web 地图在 Map Viewer 经典版中打开,但“详细信息”窗格被隐藏:
https://www.arcgis.com/home/webmap/viewer.html?webmap=8505192e747d440098523e9e64419710&mapOnly=true