我对D3非常陌生,我正试图在地图上设置点。
当我用以下代码创建一个投影时,我感到很困惑:
var projection = d3.geo
.albersUsa()
.scale(500)
.translate([el.clientWidth / 2, el.clientHeight / 2]);我用这个投影来绘制一张地图,它工作得很好。
但是,每当我调用projection([10, 20])时,它都会返回null,无论传入哪个值。
我的错误是什么?
发布于 2016-02-05 02:32:06
从文件中
projection(location)…如果指定的位置没有定义的投影位置,例如该位置在投影的裁剪范围之外时,则可以返回null。
Albers投影仅在其边界内定义,并为定义良好的区域外的坐标生成null。
请参见使用projection(location)调用[10,20]和[-110,40]调用的比较,前者无效,后者是有效点:
var projection = d3.geo
.albersUsa()
.scale(500)
.translate([960, 500]);
d3.selectAll("p")
.data([[10,20],[-110,40]])
.enter().append("p")
.text(function(d) { return d + ": " + projection(d); });<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
https://stackoverflow.com/questions/35214884
复制相似问题