我有一张简单的美国 map ,我正在尝试绘制一些测试经纬度点。我发现this block解释了这个过程,但我在将语法转换为 v4 时遇到了麻烦。即使当我在 block 中运行确切的代码时,它也会抛出相同的错误。
我可以看到 d3.geoMercator()
使 map “变平”。这个有必要吗?这看起来微不足道,但我喜欢美国 map 没有这个的自然曲率。
很好奇正确的方法是什么,以及某些代码是否是必要的。特别是这部分:
projection //Added from block -- What is this doing?
.scale(1000) //Added from block
.center([-106, 37.5]) //Added from block
我的代码添加了损坏的内容,我向添加的代码添加了注释:https://jsfiddle.net/fettww66/2/
最佳答案
在您链接的该 block 中,您只需两项更改即可使其与 D3 v4 一起运行:
var projection = d3.geo.mercator()
↦var projection = d3.geoMercator()
var path = d3.geo.path()
↦var path = d3.geoPath()
这是使用 D3 v4 更新的 bl.ocks:http://bl.ocks.org/anonymous/d0b530924ef2aae3436840a1dbb3a39f
关于你的 fiddle ,问题非常简单:你正在使用已经投影的 JSON。只需将投影设置为 null
:
.projection(null)
这是更新后的 fiddle :https://jsfiddle.net/vypu9qwr/
关于javascript - 在 map 上绘制纬度/经度 - D3.js v4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43905688/