【发布时间】:2018-03-01 19:57:35
【问题描述】:
我正在尝试做一些非常简单的事情。我有一个纽约所有国会选区的 GeoJSON 文件,我只是希望能够在我的 SVG 元素中查看它。我将它转换为 TopoJSON 并尝试关注this tutorial(除了我尝试使用新更新的 d3 v4 API)。主要问题是地图,我认为,确实被渲染了,但它非常小。如果我尝试放大它,那么我会完全看不到地图。
这是我的 html 和 d3 js:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>NY State Districts Demo</title>
</head>
<body>
<h1>Hello</h1>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.10.2/d3.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/topojson/3.0.2/topojson.js"></script>
<script>
/* JavaScript goes here */
var width = 960, height = 1160;
var svg = d3.select("body").append("svg").attr("width", width).attr("height", height);
d3.json("./ny_bounds.json", function(error, ny){
if(error) return console.error(error);
console.log(ny);
svg.append("path")
.datum(topojson.feature(ny, ny.objects.ny_bounds))
.attr("d", d3.geoPath().projection(d3.geoAlbersUsa()));
});
</script>
</body>
</html>
Here 是相关 TopoJSON 的链接。
我承认我对 d3 和 geo/topoJSON 了解不多,但我只是停留在这一点上。如果有人有任何资源可以让我更多地了解这些主题,那也很棒。但正如我之前所说,主要问题是地图太小,我似乎无法居中/缩放它。
提前感谢您的帮助。
【问题讨论】:
-
嘿伙计,我正在为我正在开始的组织从事类似类型的项目。我们应该从 stackoverflow 链接起来,这样我们就可以在可能的情况下互相帮助。
标签: javascript html d3.js geojson topojson