javascript - 在 map 上绘制纬度/经度 - D3.js v4

标签 javascript d3.js topojson

我有一张简单的美国 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/

相关文章:

javascript - 如何在 Node js 服务器上加载 bootstrap 的本地副本?

javascript - d3力布局中心节点定位

javascript - 调整组的比例以确保内部形状在 d3 js 中尽可能大

javascript - 将 Big GeoJSON 转换为 topoJSON

javascript - 为什么我的类构造函数中出现 "Uncaught ReferenceError: this is not defined"?

javascript - 将 simpleCart 项目添加到表单作为输入值

javascript - 编辑现有的 cordova 插件

javascript - D3,x轴上的日期,数据为日期的宽度

javascript - D3.js map 上的绘图点

r - 是否可以在 R 中读取 geoJSON 或 topoJSON 文件来绘制等值线图?