ArcGIS API for JavaScript本地化(离线部署)终极解决方案,3.14-4.2均有效。


ArcGIS API for JavaScript本地化(离线部署)终极解决方案,3.14-4.2均有效。
思路决定出路:
网上盛传的解决方案大多将api形而上学地修改HOSTNAME_AND_PATH_TO_JSAPI后,部署到tomcat或IIS服务中,工程中用绝对路径引用。这种方案太Low了,入门玩玩可以,根本没有考虑内外网访问的路径差异,若统一用外网IP访问,内网用户遇到没有回流功能的路由(某科路由基本都没有回流功能,需要人工加策略来实现)就惨了。另外还要考虑跨越问题。
那么,更好的方案就是将api集成到工程中,使用相对路径调用即可。(作者PS:本篇就这么一句话重要,其它的都是废话,高手不必向下看了。)
操作步骤:
方案一:
1、下载(废话)并解压API,将arcgis_js_v42_api\arcgis_js_api\library\4.2\4.2以下的所有文件夹和文件复制。
2、打开你的工程的电子地图应用网页(xxx.html)所在的文件夹,新建arcgis_js文件夹并进入,粘贴刚才复制的内容。
3、打开init.js和dojo\dojo.js,查找'//' + "[HOSTNAME_AND_PATH_TO_JSAPI]dojo"替换为"arcgis_js/dojo",并将这句话之前最近的location.protocol改为''
方案二:
1、下载并解压API,将arcgis_js_v42_api\arcgis_js_api\library\4.2\4.2以下的所有文件夹和文件复制。
2、打开你的工程\src\main\webapp\assets文件夹,新建arcgis_js文件夹并进入,粘贴刚才复制的内容。
3、打开init.js和dojo\dojo.js,查找'//' + "[HOSTNAME_AND_PATH_TO_JSAPI]dojo"替换为(new RegExp("htt.*//.*?/.*?/")).exec(window.document.location.href)+"assets/arcgis_js/dojo"

实际应用中,因工程其它地方也要用根路径,所以我在加载arc js api之前,就定义了:
window.rootPath=(new RegExp("htt.*//.*?/.*?/")).exec(window.document.location.href);
而init.js和dojo\dojo.js中为baseUrl:window.rootPath+"assets/arcgis_js/dojo"
声明:本文版权木有,欢迎转载。作者:君子8818
已邀请:

要回复问题请先登录注册