使用地图查看器制作的地图包含底图、数据图层、范围、图例以及导航工具(如缩放工具、平移工具、地点查找器和书签)。许多地图还包含交互式元素,如允许您在地图(比如影像图和街道图)间切换的底图库、测量工具、显示特定要素属性的弹出窗口以及显示随时间变化的数据的按钮。
除了使用地图查看器创建地图,您还可以通过 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 通常以 Portal for ArcGIS 主页开头,加上 /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 的免费站点和工具。为方便阅读,将不再对本主题中的其余示例进行编码。
打开保存的地图
要打开使用地图查看器创建的已保存地图,请使用 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= 设置为图层。除 basemapReferenceUrl= 参数外,必须使用 basemapUrl 参数。
例如:
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
居中地图
要将地图放在特定位置的中央,可通过地理坐标 (x,y) 或投影坐标 (x,y,WKID) 设置 center=。您可以使用逗号或分号作为分隔符。如果数字使用冒号作为小数位,则使用分号。
地理坐标示例:
https://myportal.domain.com/arcgis/home/webmap/viewer.html?center=20,45
投影坐标示例:
https://myportal.domain.com/arcgis/home/webmap/viewer.html?center=500000,5500000,102100
定义比例级别
要定义地图查看器的比例级别,请使用 center 和 level= 参数。level 参数接受 REST 服务端点中列出的缓存比例的级别 ID。可使用地图服务的 REST 端点的相关信息来确定缓存比例级别。该分辨率与比例成反比。
使用 webmap 或 find 参数时,将自动设置比例;忽略 level。如果使用 webmap 参数,地图会自动缩放至全图范围。如果使用 find 参数,地图会自动缩放至找到位置的最佳范围。
地理坐标示例:
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>。
- 请确保对 title、icon 和 label 参数编码。
- 必须按以下顺序添加属性: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
隐藏“详细信息”窗格
要隐藏地图查看器的详细信息窗格,请使用 mapOnly=true。
例如:
https://myportal.domain.com/arcgis/home/webmap/viewer.html?webmap=b487d81007294fb5a0be9e10a411f2d0&mapOnly=true