Javascript 地图上绘制的横向/纵向点位置不正确 当映射正确地映射到旧金山时,我有一组LAT/Load 37.786453,-122.490402 < /COD>。然而,在我的代码中。它正在绘制到犹他州西部的地图。我可以通过改变这段代码来操纵点的位置,这段代码与我使用的原始代码块保持不变: projection .scale(1000) .center([-106, 37.5])

Javascript 地图上绘制的横向/纵向点位置不正确 当映射正确地映射到旧金山时,我有一组LAT/Load 37.786453,-122.490402 < /COD>。然而,在我的代码中。它正在绘制到犹他州西部的地图。我可以通过改变这段代码来操纵点的位置,这段代码与我使用的原始代码块保持不变: projection .scale(1000) .center([-106, 37.5]),javascript,d3.js,Javascript,D3.js,此处需要放置哪些正确值?如果我完全删除该部分,它会将该点放置在俄勒冈州东部 以下是当前的趋势: 这是关于使用d3.js在地图上绘制lat/long的后续问题。链接到第一篇文章。您的小提琴显示了两种不同投影的特征: US topojson的空投影 点的墨卡托投影 对于显示为空投影的topojson: 参考的美国地形图已经在许多其他帖子中出现,它是美国的合成阿尔伯斯投影(在一帧中包含多个投影)。其中的数据已被投影,因此使用空投影。空投影仅获取每个点的x、y坐标,并将其转换为svg坐标,而不进行任

此处需要放置哪些正确值?如果我完全删除该部分,它会将该点放置在俄勒冈州东部

以下是当前的趋势:


这是关于使用d3.js在地图上绘制lat/long的后续问题。链接到第一篇文章。

您的小提琴显示了两种不同投影的特征:

  • US topojson的空投影
  • 点的墨卡托投影
对于显示为空投影的topojson:

参考的美国地形图已经在许多其他帖子中出现,它是美国的合成阿尔伯斯投影(在一帧中包含多个投影)。其中的数据已被投影,因此使用空投影。空投影仅获取每个点的x、y坐标,并将其转换为svg坐标,而不进行任何转换(在mapshaper.org或任何地理软件中,当svg坐标从顶部开始,而地理坐标从地图下方的赤道开始时,它将显示为上下颠倒)

最终,您将阿尔伯斯与墨卡托进行匹配-当您更改墨卡托投影时:

projection
  .scale(1000)
  .center([-106, 37.5])
您没有更改topojson,因为它的路径生成器不使用投影。您只是在更改点的投影。当您使用两个不同的投影时,同一地理点在每个投影中的表示方式将不同,这使得多个点的对齐即使不是不可能的,也会有问题(取决于点和投影)


有一个相对简单的解决方案,使用美国县的未投影数据(其中空间数据由lat-long对组成),并使用与点相同的投影进行投影。这将允许您对点和路径或任何其他要素使用一个投影,从而允许您一次缩放所有要素(否则,您将需要使用geoTransform操作县数据,同时尝试将这些更改与投影的更改相匹配,这不是理想的解决方案)


请尝试在这个()中使用json。

谢谢,@Andrew。我不知道我是否能想出那一个。