ArcGIS_API_For_JavaScript本地部署及跨域问题解决方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LENOVOJXN/article/details/88548387

Esri提供了在线版本的ArcGIS API For JavaScript,方便开发者调用。但在有些项目中,由于某些原因不能访问外网,因此有必要在局域网中部署一条ArcGIS API For JavaScript。

本篇博客中使用Tomcat来作为Web应用服务器。Java JDK和Tomcat的安装配置可参考我的另外一篇博客,也可在百度上搜索相关的教程。

首先呢,需要从官方网站上下载最新的API(此处以4.10版本为例),然后将其解压,拷贝到tomcat安装目录下的webapp文件夹中,目录结果如下图所示。
webapp目录结构
arcgis_js_api\library\4.10文件夹中,分别编辑init.jsdojo\dojo.js文件,将这里两个文件中的[HOSTNAME_AND_PATH_TO_JSAPI]替换为10.10.10.10/arcgis_js_v410_api/arcgis_js_api/library/4.10/,其中10.10.10.10是机器的IP地址,arcgis_js_v410_api/arcgis_js_api/library/4.10/为基于webapp文件夹访问init.js的路径。
在浏览器中输入https://10.10.10.10/arcgis_js_v410_api/arcgis_js_api/library/4.10/dojo/dojo.js ,如果可以访问表示,JS API配置成功。

到了这一步JS API已经在Tomcat中部署好了,如果此时在前端调用,会发现地图的放大或缩小等其他按钮图标不能正常显示,此时我们需要对Tomcat做进一步的跨域处理。

下载Tomcat配置跨域所需的文件(链接:https://pan.baidu.com/s/1uV6MsQH6SUaA8RTC2qOQdQ ,提取码:dedj),然后将加压后的文件夹中的cors-filter-2.5.jar和java-property-utils-1.9.1拷贝到tomcat的lib文件夹内,然后编辑conf文件夹中的web.xml,在250行左右添加如下内容。

<filter>    
    <filter-name>CORS</filter-name>    
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>    
    <init-param>    
        <param-name>cors.allowOrigin</param-name>   
        <param-value>*</param-value>   
    </init-param>    
    <init-param>    
        <param-name>cors.supportedMethods</param-name>   
        <param-value>GET, POST, HEAD, PUT, DELETE</param-value>   
    </init-param>    
    <init-param>    
        <param-name>cors.supportedHeaders</param-name>   
        <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>   
    </init-param>    
    <init-param>    
        <param-name>cors.exposedHeaders</param-name>   
        <param-value>Set-Cookie</param-value>   
    </init-param>    
    <init-param>    
        <param-name>cors.supportsCredentials</param-name>   
        <param-value>true</param-value>   
    </init-param>    
</filter>    
<filter-mapping>    
    <filter-name>CORS</filter-name>    
    <url-pattern>/*</url-pattern>    
</filter-mapping>

配置web.xml文件后,重启tomcat服务。然后刷新前端页面,如果能够访问到正常的图标文件,表示ArcGIS API For JavaScript可以正常使用了。

猜你喜欢

转载自blog.csdn.net/LENOVOJXN/article/details/88548387