1
У меня есть файл JSON, который d3-карта не отображает файл TopoJSON Австралии, который я создал.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();' проекция равна нулю. (Для США). Значения функций таковы, что вам не нужно увеличивать масштаб, поэтому нет необходимости переводить его. Я также отредактировал свой ответ, надеясь, что он объяснит лучше. – Cyril