Skip to content

Instantly share code, notes, and snippets.

@zane
Forked from mbostock/.block
Created November 7, 2017 02:07
Show Gist options
  • Save zane/8c7bd0318cb5518af2df1c7d0f9a53d1 to your computer and use it in GitHub Desktop.
Save zane/8c7bd0318cb5518af2df1c7d0f9a53d1 to your computer and use it in GitHub Desktop.
U.S. TopoJSON
license: gpl-3.0
height: 600
border: no

These county, state and country boundaries are extracted from a single TopoJSON file from us-atlas. Counties are stroked in thin gray, states in thin black, and the country in thick black. See also the fancy drop shadow variant.

<!DOCTYPE html>
<svg width="960" height="600" fill="none" stroke="#000" stroke-linejoin="round" stroke-linecap="round"></svg>
<script src="https://d3js.org/d3.v4.min.js"></script>
<script src="https://unpkg.com/topojson-client@3"></script>
<script>
var svg = d3.select("svg");
var path = d3.geoPath();
d3.json("https://unpkg.com/us-atlas@1/us/10m.json", function(error, us) {
if (error) throw error;
svg.append("path")
.attr("stroke", "#aaa")
.attr("stroke-width", 0.5)
.attr("d", path(topojson.mesh(us, us.objects.counties, function(a, b) { return a !== b && (a.id / 1000 | 0) === (b.id / 1000 | 0); })));
svg.append("path")
.attr("stroke-width", 0.5)
.attr("d", path(topojson.mesh(us, us.objects.states, function(a, b) { return a !== b; })));
svg.append("path")
.attr("d", path(topojson.feature(us, us.objects.nation)));
});
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment