1
d3マップが作成したオーストラリアのTopoJSONファイルをレンダリングしていないJSONファイルがあります。D3マップがオーストラリアのtopojsonファイルをレンダリングしない
同じコードは、アメリカの地図をうまく描画します。ブラウザインスペクタにエラーはなく、両方のマップはgeojson.ioのようなオンライン視覚化サイトでうまく描画されます。
私はJSONのリンクを提供しています。
- Australian TopoJSONは私のコードで動作します(ただしgeojson.io/#map=4/-27.97/125.22に動作します)私のコードで動作します
- American TopoJSONをしません
<html>
<head>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
<script src="http://d3js.org/topojson.v1.min.js"></script>
<style>
path {
fill: #ccc;
}
</style>
</head>
<body>
<h1>topojson simplified Australia</h1>
<script>
var width = window.innerWidth,
height = window.innerHeight;
var path = d3.geo.path();
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
d3.json("topo-australia-simplified.json", function(error, topology) {
if (error) throw error;
svg.selectAll("path")
.data(topojson.feature(topology, topology.objects.australia).features)
.enter().append("path")
.attr("d", path);
});
</script>
</body>
</html>
ありがとうございます!なぜ私は投影なしで米国の地図をレンダリングすることができますか知っていますか? – Dawid
これは、 'd3.geo.path();'を実行したときに投影がnullであるためです。 (米国の場合)特徴値はズームする必要がないため、翻訳する必要はありません。私はそれがより良く説明されることを望む私の答えを編集しました。 – Cyril