我正在研究Mike Bostock的代码(d3 v4):https://bl.ocks.org/mbostock/4136647。另外,在jsfiddle中如果你想运行它:https://jsfiddle.net/r3bxmhLe/
在此代码中,他没有使用任何明确的投影。
var path = d3.geoPath();
但是我需要使用显式投影,因为我必须将一些long,lat转换为x,y。我想使用相同的投影来绘制地图。所以我想把上面一行改为:
var proj = d3.AlbersUsa();
var path = d3.geoPath(proj);
我也试过
var proj = d3.AlbersUsa();
var path = d3.geoPath().projection(proj);
这会产生大量随机线而不是地图。因此,预测不起作用。我错过了什么?
请注意,当我执行proj([long, lat])
答案 0 :(得分:0)
问题是,您正在使用topJSON,如果您将其他任何内容传递给它,则将它与geoPath方法一起使用,这会使项目变得一团糟。
我碰到了
似乎默认的投影是 const projection = d3.geoAlbersUsa()。scale(1280).translate([480,300]);
具有d3默认topoJSON。