arcgis server发布wms服务,高德地图api加载

1、arcgis发布wms服务,在配置中勾选wms即可

image.png

注意,不同于wms需要单独勾选,wmts服务默认与切片图层存在
例如,其官网卫星图服务为切片服务,默认可用wmts形式
https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/WMTS/1.0.0/WMTSCapabilities.xml


2、高德地图api中wms图层及相关参数
https://lbs.amap.com/api/javascript-api/reference/wms#wms

image.png

3、加载arcgis发布的wms图层完整参数:

var wms  = new AMap.TileLayer.WMS({
        url:'http://ip:6080/xxx/MapServer/WMSServer',
        blend:false,
        tileSize:512,
        //params:{'LAYERS': '0',VERSION:'1.3.0', FORMAT:'image/png',STYLES:'default'}
       //多图层注意要对应相同数量的styles
        params:{layers: '0,1,2',VERSION:'1.3.0',FORMAT:'image/png',STYLES:'default,default,default'}
    })

4、 高德地图api加载geoserver发布的wms服务对照;
(例子中同时展示了如何添加多个图层,cql过滤展示)

var wms  = new AMap.TileLayer.WMS({
        url:'http://ip:8080/geoserver/citydo/wms',
        blend:false,
        tileSize:512,
        params:{
            layers: 'citydo%3A浙江xx_禁养区_3857,citydo%3A浙江xx_限养区_3857',
            VERSION:'1.3.0', 
            FORMAT:'image/png',
           //CQL_FILTER: "xx > 121.52862367400" //cql字段过滤图层,见后方截图效果
        }
    })

image.png
image.png

5、如cql过滤字段中含有中文,应当做编码后加载

var str2Unicode = function(str) { 
    var es=[]; 
    for(var i=0;i < str.length;i++) 
        es[i]=("00"+str.charCodeAt(i).toString(16)).slice(-4); 
    return "\\u"+es.join("\\u"); 
} 

name like %绍兴%

CQL_FILTER: "name like %27%25%E7%BB%8D%E5%85%B4%25%27"

参考:
geoserver常用cql图层过滤
GeoServer图层组:多个图层叠加效果

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容