Javascript 在地图上绘制横向/纵向-D3.js v4

Javascript 在地图上绘制横向/纵向-D3.js v4,javascript,d3.js,topojson,Javascript,D3.js,Topojson,我有一张简单的美国地图,我正试图画一些测试点。我找到了解释过程的方法,但我在将语法转换为v4时遇到了问题。即使我在块中运行完全相同的代码,它也会抛出相同的错误 我可以看到d3.geoMercator()有点“展平”地图。需要这个吗?这看起来很简单,但我喜欢美国地图没有这个的自然曲率 好奇什么是正确的方法,以及是否需要一些代码。特别是这一部分: projection //Added from block -- What is this doing? .scale(1000) //Add

我有一张简单的美国地图,我正试图画一些测试点。我找到了解释过程的方法,但我在将语法转换为v4时遇到了问题。即使我在块中运行完全相同的代码,它也会抛出相同的错误

我可以看到
d3.geoMercator()
有点“展平”地图。需要这个吗?这看起来很简单,但我喜欢美国地图没有这个的自然曲率

好奇什么是正确的方法,以及是否需要一些代码。特别是这一部分:

  projection //Added from block -- What is this doing?
    .scale(1000) //Added from block
    .center([-106, 37.5]) //Added from block

我的代码添加了中断的内容,我在添加的代码中添加了注释:

在您链接的bl.ock中,您只需两次更改即可使其与D3 v4一起运行:

  • var projection=d3.geo.mercator()
    ↦ <代码>var投影=d3.geoMercator()

  • var path=d3.geo.path()
    ↦ <代码>变量路径=d3.geoPath()

以下是使用D3 v4更新的bl.ocks:

关于你的小提琴,问题很简单:你使用的是一个已经投射的JSON。只需将投影设置为
null

.projection(null)

这是最新的小提琴:

谢谢@Gerardo。代码运行良好,但是,在代码变量<代码> AA/code >中列出的LAT/Load点位于旧金山中。当我运行代码时,它将其放置在犹他州西部。我发现我可以操纵
projection.scale(1000).center([-106,37.5])
,它会移动点。我猜我需要把它编辑成正确的值。我只是不知道那是什么。这是当前的提琴:好吧,我回答了你文章中的两个问题(使用D3V4需要做哪些更改,以及为什么提琴不起作用)。看来你还有更多的问题要问!对不起,太多了,我有一个不回答有几个问题的帖子的政策。不过,你可以随时提出新问题。这样,你在每篇文章中保留一个问题(事实上,人们可以投一个非常接近的一票,因为对于OP提出几个问题的问题,投票范围太广了);我创建了一个新帖子。感谢迄今为止的帮助和最佳实践提示。