2015-09-29 5 views
0

Я пытаюсь создать choropleth карту с CartoDB, используя библиотеку JS.Как динамически создавать CartoCSS для choropleth с 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

ответ

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

 Смежные вопросы

  • Нет связанных вопросов^_^