【发布时间】:2019-10-06 16:37:29
【问题描述】:
您好,我正在尝试创建伯明翰市的地图,但我可以看到已生成路径并且正在加载数据。我在 html 页面上看不到任何内容。
我见过人们在没有设置中心或平移的情况下使用投影功能,它会显示他们的地图,但这对我不起作用。
我研究了可能的解决方案,发现以您感兴趣的城市为中心进行投影应该有助于使地图正确显示,但这并没有帮助。我也尝试过使用音阶,但这也无济于事。
基本上我的预期结果是一张伯明翰地图,显示在我的 svg 对象中间。
var w= 1400;
var h = 700;
var svg = d3.select("body").append("svg").attr("width",w).attr("height",h );
var projection = d3.geoMercator().translate([w/2, h/2]).scale(100).center([1.8904,52.4862]);
var path = d3.geoPath().projection(projection);
var ukmap = d3.json("https://martinjc.github.io/UK-GeoJSON/json/eng/wpc_by_lad/topo_E08000025.json");
// draw map
Promise.all([ukmap]).then(function(values){
var map = topojson.feature(values[0],values[0].objects.E08000025).features
console.log(map);
svg.selectAll("path")
.data(map)
.enter()
.append("path")
.attr("class","continent")
.attr("d", path)
.style("fill", "#f0e4dd") //steelblue
});
```
【问题讨论】:
标签: javascript d3.js svg