0

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

非常感谢 !

4

1 回答 1

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;
}
于 2016-09-14T19:18:50.050 回答