Skip to content

Instantly share code, notes, and snippets.

@denisemauldin
Last active May 16, 2018 22:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save denisemauldin/f21caca9ee4b1a2fd3339a60e95f6992 to your computer and use it in GitHub Desktop.
Save denisemauldin/f21caca9ee4b1a2fd3339a60e95f6992 to your computer and use it in GitHub Desktop.
nyc_map
license: mit
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<script src="https://d3js.org/d3.v5.min.js"></script>
<style>
body { margin:0;position:fixed;top:0;right:0;bottom:0;left:0; }
</style>
</head>
<body>
<script>
var width = 960,
height = 1160;
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
d3.json("opendataset_borough_boundaries.geojson", (d) => {return d;}).then((NYC_MapInfo) => {
console.log(NYC_MapInfo)
// after loading geojson, use d3.geo.centroid to find out
// where you need to center your map
var center = d3.geoCentroid(NYC_MapInfo);
const projection = d3.geoMercator()
projection
.scale(60000)
.translate([width / 2, height / 2])
// .center(center);
.center([-73.94, 40.50]);
// now you can create new path function with
// correctly centered projection
var path = d3.geoPath()
.projection(projection);
// and finally draw the actual polygons
svg.selectAll("path")
.data(NYC_MapInfo.features)
.enter()
.append("path")
.style("fill", "steelblue")
.attr("d", path);
console.log(d3.geoMercator()([-73.948142, 40.7750119]))
svg.selectAll("circle")
.data([[-73.948142, 40.7750119], [ -73.8491607, 40.7102956], [ -73.94, 40.70], [-74.014600, 40.701123]]).enter()
.append("circle")
.attr("cx", function (d) {
return projection(d)[0];
})
.attr("cy", function (d) { return projection(d)[1]; })
.attr("r", "8px")
.attr("fill", "red")
.attr("class", "testcircle");
});
</script>
</body>
</html>
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment