Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从地图中删除carto图层_Javascript_Jquery_D3.js_Cartodb - Fatal编程技术网

Javascript 从地图中删除carto图层

Javascript 从地图中删除carto图层,javascript,jquery,d3.js,cartodb,Javascript,Jquery,D3.js,Cartodb,我能够添加一个卡通层,我的地图上的第一次点击如下。但是,我不确定如何在第二次单击时删除该层,或者以类似切换的方式删除该层 $("#toggle").button(); $("#toggle").on('click', firstClick) function firstClick() { $("#toggle").off('click').on('click', secondClick) var $this = $(this);

我能够添加一个卡通层,我的地图上的第一次点击如下。但是,我不确定如何在第二次单击时删除该层,或者以类似切换的方式删除该层

    $("#toggle").button(); 
    $("#toggle").on('click', firstClick)

    function firstClick() {
        $("#toggle").off('click').on('click', secondClick)
        var $this = $(this);
        $this.text('Heat');

        var cluster = cartodb.createLayer(map, {
                user_name : 'user_name',
                type : 'cartodb',
                sublayers : [{
                    sql : 'select * from lon_oa_residents_geocode_cluster',
                    cartocss : '#layer {marker-width: 7; marker-fill: ramp([cluster_no], (#bef4bf,  #005c02, #89ef8b, #64f567, #00f204, #009c03, #005c02,#000000, #004b01, #003801), quantiles); marker-fill-opacity: 1; marker-allow-overlap: true; marker-line-opacity: 0; }',
                    interactivity : 'cartodb_id'
                }]
            }).addTo(map); 
    }

    function secondClick() {
        $("#toggle").off('click').on('click', firstClick)
        var $this = $(this);
        $this.text('Map');      
        //insert code here to remove the cluster layer
    }
layer.hide()

从地图中隐藏图层

layer.show()

显示地图中先前添加的图层

layer.toggle() 切换图层的可见性并返回指示新状态的布尔值(如果显示图层,则为true;如果隐藏图层,则为false)


我的解决方案如下。定义子层的重要信息:

function firstClick() {
        //alert("First Clicked");
        $("#toggle").off('click').on('click', secondClick)
        var $this = $(this);
        $this.text('Density');

        var cluster = cartodb.createLayer(map, {
                user_name : 'user_name',
                type : 'cartodb',
                sublayers : [{
                    sql : 'select * from lon_oa_residents_geocode_cluster',
                    cartocss : '#layer {marker-width: 7; marker-fill: ramp([cluster_no], (#bef4bf,  #005c02, #89ef8b, #64f567, #00f204, #009c03, #005c02,#000000, #004b01, #003801), quantiles); marker-fill-opacity: 1; marker-allow-overlap: true; marker-line-opacity: 0; }',
                    interactivity : 'cartodb_id'
                }]
            }).addTo(map, 0).done(function (layer) {
                layer0 = layer; 
            });

        }

function secondClick() {
        $("#toggle").off('click').on('click', firstClick)           
            layer0.hide();
        }