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 无论我传入哪个值。

我的错误是什么?

来自文档

# projection(location)

[…] 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>