ArcGIS api for JavaScript 3.27 按需显示需要的图层

  • 实例:现有一图层服务,现需要动态显示该图层中的一部分内容:点击一个图例,只显示这个图例的内容,再点击别的图例,原来的内容不消失,再次点击已被点击的图例才会消失。
  • 思路setLayerDefinitions可以设置图层的定义,该定义可用于过滤指定图层的
    var i,k;
    var arr=[];
    var strWhere="";
    var layerDefinitions=[];
    //该show方法只是获取点击的图例的值,放入需要查询的数组中,便于拼接
    function show(name) {
        if( name !="" && arr.length==0 )
        {
            arr[0]=name;
        }
        else {
            var m=arr.indexOf(name);
            if(m<0){
                arr.push(name);
            }else{
                arr.splice(m,1);  //删除重复的
            }
        }
    
    //拼接查询语句
        switch (arr.length) {
            case 0:
                strWhere ="1=1";
                break;
            default:
                for(k=0;k<arr.length;k++) {
                    if(k!=0)
                    {
                        strWhere += " or name = '"+arr[k]+"'";
                    }
                    else{
                        strWhere="name = '" + arr[k]+"'";
                    }
                }
                break;
        }
        require([],function(){
            //要查询的那个图的图层的ID号:19
            layerDefinitions [19] = strWhere;
            tunnelLayer.setLayerDefinitions(layerDefinitions);
        });
    }

    点击图例

猜你喜欢

转载自www.cnblogs.com/yangzhengier/p/10763811.html