Skip to content

Instantly share code, notes, and snippets.

@piwodlaiwo
Created January 16, 2018 03:27
Show Gist options
  • Select an option

  • Save piwodlaiwo/7dac64184e3581d2e7a6d9c3220aa958 to your computer and use it in GitHub Desktop.

Select an option

Save piwodlaiwo/7dac64184e3581d2e7a6d9c3220aa958 to your computer and use it in GitHub Desktop.
D3v4 Map with Zoom
license: mit
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<script src="https://d3js.org/d3.v4.js"></script>
<script src="https://d3js.org/topojson.v2.min.js"></script>
<style>
body { margin:0;position:fixed;top:0;right:0;bottom:0;left:0; }
svg { width:100%; height: 100% }
</style>
</head>
<body>
<script>
var width = 900;
var height = 500;
var svg = d3.select("body").append("svg")
.call(d3.zoom().on("zoom", function () {
svg.attr("transform", d3.event.transform)
}))
.append("g");
var projection = d3.geoMercator();
var path = d3.geoPath().projection(projection);
var url = "https://gist.githubusercontent.com/mbostock/4090846/raw/d534aba169207548a8a3d670c9c2cc719ff05c47/world-50m.json";
d3.json(url, function(error, world) {
if (error) throw error;
svg.selectAll("path")
.data(topojson.feature(world, world.objects.countries).features)
.enter().append("path")
.attr("d", path);
});
</script>
</body>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment