Skip to content

Instantly share code, notes, and snippets.

@oriolbx
Created November 13, 2015 08:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oriolbx/e3f354560c8671178dab to your computer and use it in GitHub Desktop.
Save oriolbx/e3f354560c8671178dab to your computer and use it in GitHub Desktop.
paint leaflet polygons with CartoDB data
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<style>html, body, #map { height: 100%; padding: 0; margin: 0 }</style>
<link rel="stylesheet" href="http://libs.cartocdn.com/cartodb.js/v3/3.15/themes/css/cartodb.css" />
</head>
<body>
<div id="map"></div>
<!-- include cartodb.js library -->
<script src="http://libs.cartocdn.com/cartodb.js/v3/3.15/cartodb.js"></script>
<script type="text/javascript">
var layer;
var color = [];
var geom = [];
function main() {
var map = L.map('map', {
zoomControl: false,
center: [41.390205, 2.154007],
zoom: 2,
minZoom: 2,
maxZoom: 4
});
// add basemap
L.tileLayer('http://{s}.basemaps.cartocdn.com/light_nolabels/{z}/{x}/{y}.png', {attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, &copy; <a href="http://cartodb.com/attributions">CartoDB</a>'}).addTo(map);
cartodb.createLayer(map, {
user_name: 'oboix',
type: 'cartodb',
sublayers: [{
sql: "select * FROM excel_color;",
cartocss: "#excel_color{ polygon-fill: #FF6600;polygon-opacity: 0;line-color: #FFF;line-width: 0.5;line-opacity: 0; }",
}]
}).addTo(map)
.done(function(layer){
// start SQL API
var sql = new cartodb.SQL({ user: 'oboix' });
var polygon = [];
sql.execute("SELECT color_country, ST_asGeoJSON((ST_Dump(the_geom)).geom) as geom FROM draw_from_geom")
.done(function(data){
for(i = 0; i < data.total_rows; i++){ // loop that reads each column of the table
color[i] = data.rows[i].color_country;
geom[i] = data.rows[i].geom;
console.log(geom[i]);
console.log(color[i]);
polygon = L.geoJson(JSON.parse(geom[i]),{
style:{
color: "#000",
weight: 0.5,
fillColor: color[i]
}
}).addTo(map);
}
});
});
}
window.onload = main;
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment