ArcGIS WebAppbuilder 脱离Portal for ArcGIS

3
分享 2018-07-03
首先这里的脱离Arcgis Portal并不是说整个Web AppBuilder for ArcGIS (Developer Edition)完全与Portal脱离,而是用Web AppBuilder for ArcGIS创建的项目,在本地部署时可以与Portal脱离。
在Esri Support中看到有人问过WAB能不能不设置PortalURL,一位美国的工程师回复不能,因为WAB要使用其中的webMap。那么如果把WAB修改成不依赖webMap的是不是就可以脱离Portal了呢,答案是肯定的。下面介绍其中需要的更改。
1.WAB项目中的config.json文件中指定了项目要加载的map,我们可以看到在其中指定了portalUrl以及itemId,所以我们对于该文件进行修改,首先添加"useportal": false 利于在后边的更改中去做判断 是否需要使用Portal,接下来修改“map”,修改如下(因代码块较长直接附图):




2.jimu.js/ConfigLoader.js文件修改
在loadConfig方法中添加对于useportal为false的判断,代码如下:



3.jimu.js/MapManager.js文件修改
首先修改_showMap方法,在其中添加useportal为false的判断,代码如下:

然后根据_show2DWebMap方法进行_show2DWebMap_NoPortal方法的编写。
4.jimu.js/LayerInfos/LayerInfos.js文件修改
因本身基于webMap进行加载,所以在这里对于webmapItemData进行构造以减轻代码重建量。
5.修改themes文件中widgets对于Portal的依赖,我直接使用了简单粗暴的形式,将有关于portal的代码进行了注释。修改完成这些之后,WAB项目已经可以加载地图并正常使用,但在控制台中仍然会有去请求portal的错误出现,因为在某些widget中仍然有对于portal的依赖,需要一一去进行更改。
参考:https://community.esri.com/thr ... 49901
https://community.esri.com/blo ... alled
另外在修改过程中发现一个有趣的小部件,值得研究:https://github.com/cmndrbensisko/LocalLayer

文章来源:http://www.jianshu.com/p/bb5d17f2488a

1 个评论

粗暴

要回复文章请先登录注册