本文共 2110 字,大约阅读时间需要 7 分钟。
应本司需求,需做一个arcgis工具,奈何客户所在网络不许连接外网,但是arcgis的案例中使用的都是arcgis的在线服务。使得你在外围开发的东西,到了内网就都成了废物。今天小小的总结一下我的配置过程,以作备忘,共大家探讨交流。
首先提供一些未使用本地(内网)arcgis服务的报错信息(大致了解一下,可忽略不看):
1 . jsapi_zh-cn.js Failed to load resource: net::ERR_NAME_NOT_RESOLVED
2. init.js:37 Error: scriptError
at c (init.js:11) at HTMLScriptElement.<anonymous> (init.js:35) (anonymous) @ init.js:37 (anonymous) @ init.js:15 d @ init.js:10 k.signal @ init.js:15 (anonymous) @ init.js:35 init.js:37 src: dojoLoader init.js:37 info: (2) ["https://js.arcgis.com/3.23/esri/nls/jsapi_zh-cn.js", Event]3. Error: scriptError
at c (init.js:11) at HTMLScriptElement.<anonymous> (init.js:35) (anonymous) @ init.js:37 (anonymous) @ init.js:15 d @ init.js:10 k.signal @ init.js:15 (anonymous) @ init.js:35 init.js:37 src: dojoLoaderinit.js:37 info: (2) ["https://js.arcgis.com/3.23/esri/layers/VectorTileLayerImpl.js", Event]
还有很多类似的js错误,就不列举了。
解决方案:本地(内网)部署arcgis服务
1.你首先要拥有自己的内网地图地图服务,我们使用的亿阳内网地图服务。
2. 下载ArcGIS JavaScript API(需要注册ArcGis账号):
https://developers.arcgis.com/downloads/apis-and-sdks?product=javascript (选择你所使用的版本,我使用的是3.23);
2. 点击下载完成之后,解压下载好的压缩包,里面的文件如图:
其实到这里本文字基本就算结束了,你只要打开install.html文件,里面详细的描述了内网的安装过程。
如果你觉得看英文费劲,你可以:
1 . 使用google chrome 浏览器的翻译功能,
2. 我接下来简洁明要的概述安装过程
3 . 安装简要概述:
1。确定你的容器,windows环境可以是IIS / tomcat , Linux建议是tomcat / jetty 都可以
2.将arcgis_js_api 整个文件复制到 wwwroot / webapps ...(即你所使用的容器存放项目的位置即可),我们暂且就叫它WEB_HOME吧
3. 更改配置,官方建议使用的是https协议,很明显我们内网使用http协议就好,
1) WEB_HOME\arcgis_js_api\library\3.23\3.23\init.js
在文本编辑器中打开并搜索文本"http://[HOSTNAME_AND_PATH_TO_JSAPI]dojo"
,并将其替换为"https://<hostname/ip:port>/arcgis_js_api/library/3.23/3.23/dojo"
2) WEB_HOME\arcgis_js_api\library\3.23\3.23\dojo\dojo.js
在文本编辑器中打开并搜索文本"https://[HOSTNAME_AND_PATH_TO_JSAPI]dojo"
,并将其替换为"https://<myserver>/arcgis_js_api/library/3.23/3.23/dojo"
3) 将地图服务替换成你的内网地图服务,打开WEB_HOME\arcgis_js_api\library\3.23\3.23\init.js,搜索https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer,然后替换成你的内网地图服务:http://192.168.1.12:8099/arcgis/rest/services/gxyx/MapServer
4.验证你的服务是否正常:
输入 HTTPS:// <MYSERVER> /arcgis_js_api/library/3.23/3.23/init.js,看是否可以正常访问到js内容。