|
<!DOCTYPE html> |
|
<html> |
|
<head> |
|
<meta charset='utf-8' /> |
|
<title>iSchool GeoVisualization Workshop</title> |
|
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' /> |
|
<script src="//d3js.org/d3.v4.min.js"></script> |
|
<script src='https://api.tiles.mapbox.com/mapbox-gl-js/v0.43.0/mapbox-gl.js'></script> |
|
<link href='https://unpkg.com/mapbox-gl@0.43.0/dist/mapbox-gl.css' rel='stylesheet' /> |
|
<style> |
|
body { margin:0; padding:0; } |
|
#map { position:absolute; top:0; bottom:0; width:100%; } |
|
</style> |
|
</head> |
|
<body> |
|
|
|
<!-- this div with an id of "map" will be used to create our map --> |
|
<div id='map'></div> |
|
|
|
<script> |
|
|
|
// javascript code goes here!!! |
|
|
|
// url to our "raw" geo data |
|
var dataURL = "https://raw.githubusercontent.com/clhenrick/geovisualization_workshop_ischool/master/data/nyc_crashes.geojson"; |
|
|
|
// url to hexbins |
|
var hexBinURL = "https://gist.githubusercontent.com/clhenrick/5787a12a8bf3b02821839e4f9556d997/raw/f18f34a319380ba471078baec382970dbc64a9ff/processed.json"; |
|
|
|
// access token to use with MapboxGL |
|
var accessToken = 'pk.eyJ1IjoiZW5qYWxvdCIsImEiOiIzOTJmMjBiZmI2NGQ2ZjAzODhiMzhiOGI2MTI1YTk4YSJ9.sIOXXU3TPp5dLg_L3cUxhQ'; |
|
|
|
//set mapboxGL access token |
|
mapboxgl.accessToken = accessToken; |
|
|
|
//instantiate the map object |
|
var map = new mapboxgl.Map({ |
|
container: "map", |
|
style: "mapbox://styles/mapbox/light-v9", |
|
center: [-122.4194, 37.7749], |
|
zoom: 10 |
|
}); |
|
|
|
// add map navigation controls |
|
map.addControl(new mapboxgl.NavigationControl()); |
|
var temp = "{\"type\": \"Point\",\"coordinates\": [-122.46809908, 37.78184397]}" |
|
// do stuff on map load |
|
map.on("load", function(){ |
|
//load our data |
|
d3.json("json_dump.json", function(error, data){ |
|
if(error) throw error; |
|
console.log("TEST") |
|
console.log(data); |
|
//add our source |
|
map.addSource("crashes",{ |
|
type: "geojson", |
|
data: data//, |
|
//cluster: true |
|
}); |
|
|
|
//add the layer to the map |
|
map.addLayer({ |
|
id: "crashes", |
|
type: "circle", |
|
source: "crashes", |
|
layout: {}, |
|
paint: { |
|
"circle-color": "#0000ff", |
|
"circle-opacity": 0.8, |
|
"circle-radius": { |
|
base: 3, |
|
stops:[ |
|
[12, 2], |
|
[22, 180] |
|
] |
|
} |
|
} |
|
}); |
|
|
|
}); //ends d3.json |
|
|
|
// load hexbin data |
|
/*d3.json(hexBinURL, function(error, hexbins){ |
|
if (error) throw error; |
|
|
|
console.log(hexbins); |
|
|
|
|
|
var colorRamp = ['#feebe2','#fcc5c0','#fa9fb5','#f768a1','#dd3497','#ae017e','#7a0177']; |
|
|
|
map.addSource("hexGrid",{ |
|
type: "geojson", |
|
data: hexbins |
|
}); |
|
|
|
map.addLayer({ |
|
id: "hexGrid", |
|
type: "fill", |
|
source: "hexGrid", |
|
layout: {}, |
|
paint:{ |
|
"fill-color": { |
|
property: "bin", |
|
stops: colorRamp.map(function(d, i){ |
|
return [i, d] |
|
}) |
|
}, |
|
"fill-opacity": 0.5 |
|
} |
|
}); |
|
|
|
|
|
|
|
}); */ |
|
|
|
}); //ends maponload |
|
|
|
</script> |
|
</body> |
|
</html> |