d3.geoPath(投影)不起作用

问题描述 投票:0回答:1

我正在研究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])时,上面的投影工作正常

javascript d3.js geo
1个回答
0
投票

问题是你正在使用topJSON,它专门用于geoPath方法,如果你传递任何其他东西,你加倍的项目得到混乱。

我碰到了这个

似乎默认投影是const projection = d3.geoAlbersUsa()。scale(1280).translate([480,300]);

使用d3默认topoJSON。

© www.soinside.com 2019 - 2024. All rights reserved.