CartoDB / javascript:点击时突出显示多字形

时间:2016-02-09 08:59:55

标签: javascript cartodb

我有一个cartoDB数据集,由大约100个条目(多边形几何)组成,我使用cartodb.js API检索。 在点击区域时,改变给定条目(乘法)的不透明度的最佳方法是什么? 我找到了that piece code,但这意味着每次选择一个看起来不是最佳的多边形时,都会运行一个新的SQL查询并添加一个图层。

非常感谢!

1 个答案:

答案 0 :(得分:1)

cartoDb中的图层有一个关联的css,所以无论你想要什么,你都可以改变这个css。

 cartodb.createLayer(map, layerSource) 
           .addTo(map)
            .done(function(layer) {

                var layerCartoDBDis = layer.getSubLayer(0);
                var layerCartoDBBa = layer.getSubLayer(1);


    });
             })
             .error(function(err) {
              console.log("error: " + err);
           });     `enter code here`

在你的javascript中

            <select id="tipo" >
                <option value="1">layer1</option>
                <option value="2">layer2</option>
            </select>


           $('#tipo').on('change', function(e){
            var capa = $('#tipo').val(); 
            leyenda(capa);
             switch (capa) {
              case "0":                 
                layerCartoDBDis.set('SELECT * FROM demo_DBDis');
                layerCartoDBDis.set('cartocss', '#demo_DBDis{ polygon-fill: #FFFFCC;  polygon-opacity: 0.2;  line-color: #FFF;  line-width: 0.5;  line-opacity: 1;'} );
                break;
               case "1":                    
                layerCartoDBBa.set('SELECT * FROM demo_DBBa');
                layerCartoDBBa.set('cartocss', '#demo_DBBa{ polygon-fill: #FFFFCC;  polygon-opacity: 0.2;  line-color: #FFF;  line-width: 0.5;  line-opacity: 1;'} );
                    break;
}