D3
OG
Old school D3 from simpler times
All examples
By author
By category
About
wboykinm
Full window
Github gist
Mapbox.js choropleth example
<!DOCTYPE html> <html> <head> <meta charset=utf-8 /> <title>Choropleth</title> <meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no' /> <script src='https://api.tiles.mapbox.com/mapbox.js/v1.6.1/mapbox.js'></script> <link href='https://api.tiles.mapbox.com/mapbox.js/v1.6.1/mapbox.css' rel='stylesheet' /> <style> body { margin:0; padding:0; } #map { position:absolute; top:0; bottom:0; width:100%; } </style> </head> <body> <div id='map'></div> <style> .map-legend .swatch { width:20px; height:20px; float:left; margin-right:10px; } .leaflet-popup-close-button { display: none; } .leaflet-popup-content-wrapper { pointer-events: none; } </style> <script src='us-states.js'></script> <script> var mapdataviz = L.mapbox.map('map', 'examples.map-9ijuk24y') .setView([37.8, -96], 4); var popup = new L.Popup({ autoPan: false }); // statesData comes from the 'us-states.js' script included above var statesLayer = L.geoJson(statesData, { style: getStyle, onEachFeature: onEachFeature }).addTo(mapdataviz); function getStyle(feature) { return { weight: 2, opacity: 0.1, color: 'black', fillOpacity: 0.7, fillColor: getColor(feature.properties.density) }; } // get color depending on population density value function getColor(d) { return d > 1000 ? '#003E99' : d > 500 ? '#0058B3' : d > 200 ? '#0071CC' : d > 100 ? '#0A8BE6' : d > 50 ? '#23A4FF' : d > 20 ? '#3DBEFF' : d > 10 ? '#56D7FF' : '#70F1FF'; } function onEachFeature(feature, layer) { layer.on({ mousemove: mousemove, mouseout: mouseout, click: zoomToFeature }); } var closeTooltip; function mousemove(e) { var layer = e.target; popup.setLatLng(e.latlng); popup.setContent('<div class="marker-title">' + layer.feature.properties.name + '</div>' + layer.feature.properties.density + ' people per square mile'); if (!popup._map) popup.openOn(mapdataviz); window.clearTimeout(closeTooltip); // highlight feature layer.setStyle({ weight: 3, opacity: 0.3, fillOpacity: 0.9 }); if (!L.Browser.ie && !L.Browser.opera) { layer.bringToFront(); } } function mouseout(e) { statesLayer.resetStyle(e.target); closeTooltip = window.setTimeout(function() { mapdataviz.closePopup(); }, 100); } function zoomToFeature(e) { mapdataviz.fitBounds(e.target.getBounds()); } mapdataviz.legendControl.addLegend(getLegendHTML()); function getLegendHTML() { var grades = [0, 10, 20, 50, 100, 200, 500, 1000], labels = [], from, to; for (var i = 0; i < grades.length; i++) { from = grades[i]; to = grades[i + 1]; labels.push( '<li><span class="swatch" style="background:' + getColor(from + 1) + '"></span> ' + from + (to ? '–' + to : '+')) + '</li>'; } return '<span>People per square mile</span><ul>' + labels.join('') + '</ul>'; } </script> </body> </html>
https://api.tiles.mapbox.com/mapbox.js/v1.6.1/mapbox.js