[英]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
。
我怎么了
从文档中
[…]如果指定位置没有定义的投影位置,例如当该位置在投影的剪切范围之外时,可能返回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.