This file shows how to use the geoConicConformalFrance projection from d3-composite-projections. without using node.
Click here to see the node version
forked from rveciana's block: conicConformalFrance linked directly example
license: mit |
This file shows how to use the geoConicConformalFrance projection from d3-composite-projections. without using node.
Click here to see the node version
forked from rveciana's block: conicConformalFrance linked directly example
<!DOCTYPE html> | |
<meta charset="utf-8"> | |
<style> | |
.states { | |
fill: #ccc; | |
stroke: #fff; | |
} | |
</style> | |
<body> | |
<script src="https://d3js.org/d3.v4.min.js"></script> | |
<script src="http://d3js.org/topojson.v1.min.js"></script> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3-composite-projections/1.0.1/d3-composite-projections.min.js"></script> | |
<script> | |
var width = 960, | |
height = 500; | |
var projection = d3.geoConicConformalFrance(); | |
var path = d3.geoPath() | |
.projection(projection); | |
var svg = d3.select("body").append("svg") | |
.attr("width", width) | |
.attr("height", height); | |
var t = d3.transition(); | |
d3.json("france.json", function(error, france) { | |
var france = topojson.feature(france, france.objects.regions); | |
svg.selectAll(".region") | |
.data(france.features) | |
.enter() | |
.append("path") | |
.attr("class", "region") | |
.attr("d", path) | |
.style("fill", "#aca") | |
.style("stroke", "#000") | |
.style("stroke-width", "0.5px") | |
.on("mouseover", function(d,i) { | |
d3.select(this).interrupt(); | |
d3.select(this) | |
.transition(t) | |
.style("fill", "red"); | |
}) | |
.on("mouseout", function(d,i) { | |
d3.select(this).interrupt(); | |
d3.select(this) | |
.transition(t) | |
.style("fill", "#aca"); | |
});; | |
svg | |
.append("path") | |
.style("fill","none") | |
.style("stroke","#f00") | |
.attr("d", projection.getCompositionBorders()); | |
}); | |
</script> |