Skip to content

Instantly share code, notes, and snippets.

@qaisarmehmood
Last active March 31, 2017 00:34
Show Gist options
  • Save qaisarmehmood/646c523fc0a7adad2ba2e75af29a238a to your computer and use it in GitHub Desktop.
Save qaisarmehmood/646c523fc0a7adad2ba2e75af29a238a to your computer and use it in GitHub Desktop.
homework 7
license: mit
<!DOCTYPE html>
<meta charset="utf-8">
<style>
#streets {
fill: none;
stroke: black;
stroke-width: 1.5px;
stroke-linejoin: round;
}
</style>
<svg width="960" height="500"></svg>
<script src="//d3js.org/d3.v4.min.js"></script>
<script src="//d3js.org/d3-tile.v0.0.min.js"></script>
<script src="//d3js.org/topojson.v1.min.js"></script>
<script>
var pi = Math.PI,
tau = 2 * pi;
var svg = d3.select("svg"),
width = +svg.attr("width"),
height = +svg.attr("height");
var projection = d3.geoMercator()
.scale((1 << 18) / tau)
.translate([width / 2, height / 2])
.center([-83.15, 42.43]);
var path = d3.geoPath()
.projection(projection);
var url = "https://umbcvis.github.io/classes/class-03/us.json"
var usgs = "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_week.geojson";
d3.queue()
.defer(d3.json, url)
.defer(d3.json, usgs)
.await(ready)
function ready(error, us, json) {
if (error) throw error;
var states = us.objects.us.geometries.map(function(d) { return topojson.feature(us, d); })
var ok = states.filter(function(d) {return d.properties.name === "Oklahoma"; });
console.log('here i am', states.length, ok.length);
var extent = [[0,0], [width, height]];
projection.fitExtent(extent, ok[0]);
var tiles = d3.tile()
.size([width, height])
.scale(projection.scale() * tau)
.translate(projection([0, 0]))
();
svg.selectAll("image")
.data(tiles)
.enter().append("image")
.attr("xlink:href", function(d) { return "http://" + "abc"[d[1] % 3] + ".tile.openstreetmap.org/" + d[2] + "/" + d[0] + "/" + d[1] + ".png"; })
.attr("x", function(d) { return (d[0] + tiles.translate[0]) * tiles.scale; })
.attr("y", function(d) { return (d[1] + tiles.translate[1]) * tiles.scale; })
.attr("width", tiles.scale)
.attr("height", tiles.scale);
svg.append("path")
.attr("id", "streets")
.datum(topojson.mesh(us, us.objects.us))
.attr("d", path);
svg.selectAll("path.quake")
.data(json.features)
.enter().append("path")
.attr("class", "quake")
.style("fill", "crimson")
.attr("d", path)
}
//d3.json(usgs, plotQuakes);
function plotQuakes(error, json){
if (error) throw error;
}
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment