高德地图api加载其他服务器上arcgis发布wms服务时候遇到跨域问题的解决方法

1.代码

 var map = new AMap.Map("map", {
            zoom: 13,
            pitch: 50,
            showIndoorMap: false,
            showLabel: false,
            mapStyle: 'amap://styles/light',
            center: [101.78, 36.62],
          features: ['bg', 'point', 'road'],
          viewMode: '3D'


        });
 //轨迹线
 var wms5 = new AMap.TileLayer.WMS({
            url: 'http://10.1.8.37:6080/arcgis/services/xjgj/MapServer/WMSServer', // wms服务的url地址
            blend: false, // 地图级别切换时,不同级别的图片是否进行混合
            tileSize: 256, // 加载WMS图层服务时,图片的分片大小
            params: {
                'LAYERS': '0',
                VERSION: '1.3.0',
                STYLES: 'default',
                FORMAT: 'image/png'
            } // OGC标准的WMS地图服务的GetMap接口的参数
        });
   wms5.setMap(map);

运行结果:

高德地图api加载其他服务器上arcgis发布wms服务时候遇到跨域问题的解决方法_第1张图片

2.解决办法:

1)经验证,安装ArcGIS10.4以及以上版本的环境(包括desktop和server)

2)如果不满足版本要求,则配置代理(10.1,10.2,10.3,本人安装的是10.2环境)

一开始参照https://blog.csdn.net/a1002308667/article/details/52044290这篇文章做的,依旧不能解决问题。

后来在大佬@Sily°小雨天 的帮助下,终于解决了该问题,特此表示由衷的感谢!

1)先下载代理文件 https://github.com/Esri/resource-proxy/releases 10.2对应的是1.1.0版本

高德地图api加载其他服务器上arcgis发布wms服务时候遇到跨域问题的解决方法_第2张图片

2)修改proxy.config文件 (这块是重点)

高德地图api加载其他服务器上arcgis发布wms服务时候遇到跨域问题的解决方法_第3张图片

3)将DotNet文件放到项目中(位置自定义)

高德地图api加载其他服务器上arcgis发布wms服务时候遇到跨域问题的解决方法_第4张图片

4)代理路径调用(大功告成了!)

高德地图api加载其他服务器上arcgis发布wms服务时候遇到跨域问题的解决方法_第5张图片

ps:

var map = new AMap.Map("map", {
            zoom: 13,
            pitch: 50,
            showIndoorMap: false,
            showLabel: false,
            mapStyle: 'amap://styles/light',
            center: [101.78, 36.62],
          features: ['bg', 'point', 'road'],
          viewMode: '3D'
 
 
        });

如果构建地图的时候不加 viewMode: '3D',则10.2,10.3环境不会出现跨域情况。
 

 

你可能感兴趣的:(arcgis-js,高德地图)