ArcGIS MapServer
ArcGIS MapServer 又称 ArcGIS Server 地图服务,当用户发布地图服务后,可以通过ArcGIS Server 的“Export Map”接口获取动态地图服务,并添加到DTS平台中浏览与使用。
注意:
- 同时叠加使用多个不同切片参考点或数据范围的地图服务,需要升级至 V5.4及以上版本。
- 此外,ArcGIS 的“Export Map”接口支持对地图服务进行重投影,不论原始服务是投影坐标系或地理坐标系,对地图服务地址进行简单编辑后即可加载到Explorer中。但是,通过“Export Map”接口请求的地图瓦片会在ArcGIS Server服务器重新实时绘制,所以加载效率会受到较大影响,尤其在地图层级较为精细或者地图范围较大时,不建议使用这种方式加载地图,需要将服务重新发布为“和场景一致坐标系的服务”进行加载,其中WMTS效率最好。
获取服务地址
在浏览器打开“ArcGIS Server Manager”并进入地图服务的“REST URL”中,查看该服务的详细信息,并在页面底部点击“Export Map”。

在打开页面中切换“Format”为“Image”,点击“Export Map Image(GET)”。

在打开的页面中复制浏览器地址。

http://localhost:6080/arcgis/rest/services/wms/4547wms/MapServer/export?bbox=431854.99320500024%2C2438890.057550001%2C604401.9852949992%2C2557539.7062500003&bboxSR=&layers=&layerDefs=&size=&imageSR=&format=png&transparent=false&dpi=&time=&layerTimeOptions=&dynamicLayers=&gdbVersion=&mapScale=&f=image修改上述地址“?”后的参数,保留bbox、bboxSR、layers、layerDefs、size、imageSR、format、transparent、f 参数,参数取值使用“=”声明,参数之间用“&”连接。下面给出这些参数的释义与取值示例。
bbox: 地图边界范围。取值 {bbox-epsg-xxxx}。这里注意,其中的EPSG编码与添加到ACP工程中的数据所使用的坐标系保持一致。例如,添加到工程中的数据所用坐标系为 EPSG 4547 - CM 114E,则bbox的EPSG编码为4547,取值 {bbox-epsg-4547}。
bboxSR: 地图边界范围的坐标系。取值xxxx。其中的EPSG编码xxxx与bbox的EPSG编码保持一致。例如,4547。
layers: 需要渲染的图层名称。一般取值 设置为空 即可。
layerDefs: 图层定义。一般取值 设置为空 即可。
size: 地图瓦片的宽度与高度。取值 256%2C256,不建议修改。
imageSR: 切片图片的坐标系。取值 xxxx。其中的EPSG编码xxxx与bbox的EPSG编码保持一致。例如,4547。
format: 地图瓦片格式。取值 png,不建议修改。
transparent: 地图支持透明度设置。取值 true,不建议修改。
f: 请求格式。取值 image,不建议修改。
编辑后服务地址示例:
http://localhost:6080/arcgis/rest/services/wms/4547wms/MapServer/export?bbox={bbox-epsg-4547}&bboxSR=4547&layers=&layerDefs=&size=256%2C256&imageSR=4547&format=png&transparent=true&f=image
加载地图服务
打开Explorer,新建工程,坐标系选择与编辑后的服务地址一致的坐标系。

注意:如果地图服务是自定义的投影坐标系,这里需要通过导入PRJ文件的方式设 置坐标系信息。
在“设置”-“地图服务”中,设置好“服务类型”后,输入编辑后的服务地址并按下键盘回车键。

导入对应区域的3dt文件或shp数据在图层树中双击定位,即可在场景中找到并浏览地图服务。

常见问题
在使用ArcGIS发布地图服务后,程序会默认提供 Export Map 接口来动态加载服务(即MapServer的方式),且程序会自动记录两个范围Initial Extent与Full Extent。其中,Initial Extent是在AcrMAP中发服务时,地图窗口视角的范围,而Full Extent是整个地图的实际范围。
在加载服务时,使用 Export Map Image (GET) 会默认用Initial Extent作为地图的bbox范围,当Initial Extent的范围小于Full Extent时,可能会导致加载地图服务显示不全的问题。
因此,不论发什么类型的地图服务,在发布前“全图显示”一下即可规避这一问题。
下面是已经完成服务发布,且无法再修改原始MXD工程并重新发布服务的解决方法:
当使用MapServer加载服务后,在场景中显示不全时,大概率是由于bbox的范围受到了Initial Extent的限制导致的,解决方法如下:
- 在服务页面找到地图服务的Full Extent。

- 在 Export Map 页面,分别设置 Bounding Box、Bounding Box Spatial Reference、Image Spatial Reference 与 Format:
Bounding Box:填入Full Extent的范围值,数值之间用英文逗号“,”分隔开。例如:113.41163504611674,22.09368539241818,114.93581771892617,23.066001741634242
Bounding Box Spatial Reference:填入地图服务坐标系的EPSG编码,例如上述服务的 Spatial Reference 为4490,则填入4490。若为自定义坐标系,则不填该项。
Image Spatial Reference:填入加载到场景中时,与ACP一致的坐标系的EPSG编码,例如上述服务需要加载至4547的ACP中,则填入4547。
Format:设置为JSON。

- 点击Export Map Image (GET) ,打开服务的JSON页面,得到当前服务的完整范围。
- 将上述范围使用英文逗号“,”连接后,替换“编辑后服务地址”中 bbox 的参数值即可,其他参数保持之前的配置方法。
http://localhost:6080/arcgis/rest/services/wms/4547wms/MapServer/export?bbox=439283.38669289491,2419518.7227764535,596574.04857485346,2576809.3846584121&bboxSR=4547&layers=&layerDefs=&size=256%2C256&imageSR=4547&format=png&transparent=true&f=image