Datamaps Experiments
by mram888
HTML
<script src="//cdnjs.cloudflare.com/ajax/libs/d3/3.5.3/d3.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/topojson/1.6.9/topojson.min.js"></script>
<script src="//datamaps.github.io/scripts/datamaps.usa.min.js"></script>
<script src="//rawgit.com/Caged/d3-tip/master/index.js"></script>
<link rel="stylesheet" href="//rawgit.com/Caged/d3-tip/master/examples/example-styles.css">
<script src="//d3js.org/d3.hexbin.v0.min.js"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/materialize/0.96.1/css/materialize.min.css">
<script src="//rawgit.com/gka/d3-jetpack/master/d3-jetpack.js"></script>
<script src="//rawgit.com/DarkMarmot/kodama/master/kodama.js"></script>
<div id="zoom_map"></div>
CSS
#container {
width: 100%;
height: 200px;
margin: auto auto;
}
.container {
margin-top: 40px;
}
.datamaps-subunit.active {
fill: orange !important;
}
.arrow-down {
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: 5px solid black;
margin-top: -35px;
margin-left: 40px;
}
path.hexagon:hover{
stroke: black;
"stroke-width": 20px;
z-index: 5;
}
CoffeeScript
var zoom = new Datamap({
element: document.getElementById("zoom_map"),
scope: 'world',
// Zoom in on Africa
setProjection: function(element) {
var projection = d3.geo.equirectangular()
.center([23, -3])
.rotate([4.4, 0])
.scale(400)
.translate([element.offsetWidth / 2, element.offsetHeight / 2]);
var path = d3.geo.path()
.projection(projection);
return {path: path, projection: projection};
},
fills: {
defaultFill: "#ABDDA4",
gt50: colors(Math.random() * 20),
eq50: colors(Math.random() * 20),
lt25: colors(Math.random() * 10),
gt75: colors(Math.random() * 200),
lt50: colors(Math.random() * 20),
eq0: colors(Math.random() * 1),
pink: '#0fa0fa',
gt500: colors(Math.random() * 1)
},
data: {
'ZAF': { fillKey: 'gt50' },
'ZWE': { fillKey: 'lt25' },
'NGA': { fillKey: 'lt50' },
'MOZ': { fillKey: 'eq50' },
'MDG': { fillKey: 'eq50' },
'EGY': { fillKey: 'gt75' },
'TZA': { fillKey: 'gt75' },
'LBY': { fillKey: 'eq0' },
'DZA': { fillKey: 'gt500' },
'SSD': { fillKey: 'pink' },
'SOM': { fillKey: 'gt50' },
'GIB': { fillKey: 'eq50' },
'AGO': { fillKey: 'lt50' }
}
});
zoom.bubbles([
{name: 'Bubble 1', latitude: 21.32, longitude: -7.32, radius: 45, fillKey: 'gt500'},
{name: 'Bubble 2', latitude: 12.32, longitude: 27.32, radius: 25, fillKey: 'eq0'},
{name: 'Bubble 3', latitude: 0.32, longitude: 23.32, radius: 35, fillKey: 'lt25'},
{name: 'Bubble 4', latitude: -31.32, longitude: 23.32, radius: 55, fillKey: 'eq50'},
], {
popupTemplate: function(geo, data) {
return "<div class='hoverinfo'>Bubble for " + data.name + "";
}
});