D3 albersUsa 投影函数 return null
D3 albersUsa projection funtion return null
我是 D3 的新手,我正在尝试在地图上设置点。
我在使用以下代码创建投影时感到困惑:
var projection = d3.geo
.albersUsa()
.scale(500)
.translate([el.clientWidth / 2, el.clientHeight / 2]);
我用这个投影画了一张地图,效果很好。
但是每当我调用 projection([10, 20])
它时 returns null
无论我传入哪个值。
我的错误是什么?
来自文档
[…]
May return null if the specified location has no defined projected position, such as when the location is outside the clipping bounds of the projection.
Albers USA 投影仅在其边界内定义,对于明确定义区域外的坐标将产生 null
。
查看使用无效的 [10,20]
和有效的 [-110,40]
调用 projection(location)
的比较:
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>
我是 D3 的新手,我正在尝试在地图上设置点。
我在使用以下代码创建投影时感到困惑:
var projection = d3.geo
.albersUsa()
.scale(500)
.translate([el.clientWidth / 2, el.clientHeight / 2]);
我用这个投影画了一张地图,效果很好。
但是每当我调用 projection([10, 20])
它时 returns null
无论我传入哪个值。
我的错误是什么?
来自文档
[…] May return null if the specified location has no defined projected position, such as when the location is outside the clipping bounds of the projection.
Albers USA 投影仅在其边界内定义,对于明确定义区域外的坐标将产生 null
。
查看使用无效的 [10,20]
和有效的 [-110,40]
调用 projection(location)
的比较:
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>