1.简介
在ArcGIS Server的rest地址中,使用JS方式预览地图服务时,会使用在线的ArcGIS JS API。通常生产环境下是无法访问外网的,所有导致无法方便的预览地图服务。当然也可以通过portal来预览,或者部署离线版JS API。这里提供一种更简洁的方式,不需要额外的软件环境或Web服务器,而是直接使用ArcGIS Server中的tomcat来实现离线版JS API的部署。
2.JS API离线部署
(1)离线部署
打开ArcGIS for Server安装目录\Server\framework\runtime\tomcat\webapps
,在其中创建文件夹arcgis#jsapi
,并将JS API复制到其中。
(2)修改JS API配置
修改arcgis#jsapi/3.20/init.js和arcgis#jsapi/3.20/dojo/dojo.js
文件,将文件中的[HOSTNAME_AND_PATH_TO_JSAPI]/dojo
修改为本地访问地址,如:"webgisdemo.xinli.local:" + (location.protocol === "https:" ? "6443" : "6080") + "/arcgis/jsapi/3.20/dojo"
。
3.ArcGIS Server中配置与测试
(1)Server Admin配置
在Server Admin中,打开地址:https://webgisdemo.xinli.local:6443/arcgis/admin/system/handlers/rest/servicesdirectory
。
点edit,修改其中的地址:
Javascript API URL :https://webgisdemo.xinli.local:6443/arcgis/jsapi/3.20/init.js
Javascript API CSS URL :https://webgisdemo.xinli.local:6443/arcgis/jsapi/3.20/dijit/themes/tundra/tundra.css
Javascript API CSS2 URL :https://webgisdemo.xinli.local:6443/arcgis/jsapi/3.20/esri/css/esri.css
(2)预览测试
4.其他
4.1.预览需求
如果有Portal环境,有两种方式来预览地图服务:
- 可以直接通过Portal来预览ArcGIS Server中的服务,并且还可以做查询分析等额外功能。
- 在ArcGIS Server中配置使用Portal的JS API,继续使用ArcGIS Server rest地址来预览。
如果没有Portal环境,也有两种方式预览地图服务:
- 使用ArcGIS桌面软件来预览,同样提供查询等外额功能。
- 部署离线JS API,再在ArcGIS Server中配置使用和预览。
4.2.开发需求
- 如果使用最新版JS API,需要部署离线版JS API,可以使用本文的方式,也可以部署在web工程下。这两种方式可不用部署额外的Web服务器。
- 直接使用Portal中提供的JS API。需要注意的是Portal中的JS API版本不是最新版。
4.3.Web工程下部署JS API
JS API需要修改dojo.js文件,并将访问url设置其中,为避免绑死在固定url上,可做如下修改:
- 在dojo.js文件头,添加:
var agsJsBaseUrl= window.location.protocol+"//"+window.location.host
; -
[HOSTNAME_AND_PATH_TO_JSAPI]
部分修改为:baseUrl:agsJsBaseUrl+"/arcgis/jsapi/4.4/dojo"
4.4.JS API4.4离线部署
- 离线部署
打开ArcGIS for Server安装目录\Server\framework\runtime\tomcat\webapps
,在其中创建文件夹arcgis#jsapi
,并将JS API复制到其中。
- 修改配置文件
修改arcgis#jsapi/4.4/dojo/dojo.js
文件,在文件头增加:将文件中的[HOSTNAME_AND_PATH_TO_JSAPI]
修改为本地访问地址,如:https://webgisdemo.xinli.local:6443/arcgis/jsapi/4.4/
- 调用测试
JS引用:https://webgisdemo.xinli.local:6443/arcgis/jsapi/4.4/dojo/dojo.js
CSS引用:
https://webgisdemo.xinli.local:6443/arcgis/jsapi/4.4/dijit/themes/claro/claro.css
https://webgisdemo.xinli.local:6443/arcgis/jsapi/4.4/esri/css/main.css