0

JS ライブラリを使用して CartoDB でコロプレス マップを作成しようとしています。

レイヤー上で cartoCSS を動的に作成するにはどうすればよいですか?

列に基づいて可能ですか?

たとえば、組み込みのウ​​ィザードを使用すると、次のように生成されました。フロントエンドでカスタムの色と列名を使用して、これを何らかの方法で動的に生成したいと考えています。

#mytable{
  polygon-fill: #FFFFB2;
  polygon-opacity: 0.8;
  line-color: #FFF;
  line-width: 0.5;
  line-opacity: 1;
}
#mytable [ col_xyz <= 12505.969707] {
   polygon-fill: #B10026;
}
#mytable [ col_xyz <= 3650.909837] {
   polygon-fill: #E31A1C;
}
#mytable [ col_xyz <= 1656.60976] {
   polygon-fill: #FC4E2A;
}
#mytable [ col_xyz <= 677.226857] {
   polygon-fill: #FD8D3C;
}
#mytable [ col_xyz <= 333.140676] {
   polygon-fill: #FEB24C;
}
#mytable [ col_xyz <= 170.576913] {
   polygon-fill: #FED976;
}
#mytable [ col_xyz <= 51.090065] {
   polygon-fill: #FFFFB2;
}

http://docs.cartodb.com/cartodb-platform/cartodb-js.html#sublayersetcartocsscss

4

1 に答える 1

0

はい - createLayer メソッドを使用して、各ポリゴンを独自のサブレイヤーにします...

 cartodb.createLayer(map, {
   user_name: 'mycartodbuser',
   type: 'cartodb',
   sublayers: [{
   sql: "SELECT * FROM table_name",
   cartocss: '#table_name {polygon-fill: #F0F0F0;}'
   },
   {
   sql: "SELECT * FROM table_name",
   cartocss: '#table_name {polygon-fill: #FFFFFF;}'
   }]
 })
 .addTo(map)
 .done(function(layer) {
   //DO STUFF
 });

これを行うにはもっと良い方法があるかもしれませんが、私にとってはうまくいきました。

http://docs.cartodb.com/cartodb-platform/cartodb-js.html

于 2015-10-13T03:45:21.070 に答える