Skip to content

Instantly share code, notes, and snippets.

@VictorHom
Created May 17, 2018 12:51
Show Gist options
  • Save VictorHom/ce6a0f8b3300945349df0365a334c80f to your computer and use it in GitHub Desktop.
Save VictorHom/ce6a0f8b3300945349df0365a334c80f 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