D3.js D3映射未呈现JSON文件

D3.js D3映射未呈现JSON文件,d3.js,topojson,D3.js,Topojson,我有一个JSON文件,D3Map没有呈现我创建的JSON文件 同样的代码可以渲染一张美国地图。浏览器检查器中没有错误,两张地图在geojson.io等在线可视化网站上都呈现良好 我已经提供了JSON的链接 不适用于我的代码(但适用于geojson.io/#map=4/-27.97/125.22) 与我的代码一起工作 路径{ 填充:#ccc; } 澳大利亚拓扑学 变量宽度=window.innerWidth, 高度=窗内高度; var path=d3.geo.path(); var svg

我有一个JSON文件,D3Map没有呈现我创建的JSON文件

同样的代码可以渲染一张美国地图。浏览器检查器中没有错误,两张地图在geojson.io等在线可视化网站上都呈现良好

我已经提供了JSON的链接

  • 不适用于我的代码(但适用于geojson.io/#map=4/-27.97/125.22)
  • 与我的代码一起工作

路径{
填充:#ccc;
}
澳大利亚拓扑学
变量宽度=window.innerWidth,
高度=窗内高度;
var path=d3.geo.path();
var svg=d3.选择(“正文”).追加(“svg”)
.attr(“宽度”,宽度)
.attr(“高度”,高度);
d3.json(“topo australia simplified.json”),函数(错误,拓扑){
如果(错误)抛出错误;
svg.selectAll(“路径”)
.data(topojson.feature(topology,topology.objects.australia).features)
.enter().append(“路径”)
.attr(“d”,路径);
});

问题在于您正在使用:

var path = d3.geo.path();
您尚未给出预测:

var projection = d3.geo.mercator()
  .scale(500)//scale it up as per your choice.
  .translate([-900,0]);//translate as it was scaled up.

var path = d3.geo.path()
  .projection(projection);

工作代码

谢谢!你知道为什么我可以在没有投影的情况下渲染美国地图吗?原因是当你
d3.geo.path()时投影为空。(对于美国的情况)特征值不需要缩放,因此无需转换。我还编辑了我的答案,希望它能更好地解释。