繁体   English   中英

D3 albersUsa投影功能返回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]) ,无论我传入哪个值,它都将返回null

我怎么了

从文档中

projection(location)

[…]如果指定位置没有定义的投影位置,例如当该位置在投影的剪切范围之外时,可能返回null。

Albers USA投影仅在其边界内定义,并且在定义明确的区域之外的坐标将为null

请参见使用[10,20] (无效)和[-110,40] (有效点projection(location)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> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM