D3.js 使用d3制作增强局部地图的一些选项

D3.js 使用d3制作增强局部地图的一些选项,d3.js,maps,D3.js,Maps,我是d3 geo的新手。我的任务是制作一张波士顿地图并添加一些互动功能 到目前为止,我已经能够大致了解波士顿。但是底图应该和你在谷歌地图上看到的东西相比较——它应该有建筑物、道路、街道名称、城市名称、河流等。这是一个让你更熟悉这个地区的基本地理 现在,我不需要平移,可能只有两三个缩放状态 我所看到的所有将交互功能叠加到地图上的可视化效果似乎都是将图像用于底层地图:,等等。所以我想我的问题是: 为什么有些地图使用图像作为“背景”在现有地图的基础上进行构建是最简单的方法吗?它的性能更好吗 如果我使用

我是d3 geo的新手。我的任务是制作一张波士顿地图并添加一些互动功能

到目前为止,我已经能够大致了解波士顿。但是底图应该和你在谷歌地图上看到的东西相比较——它应该有建筑物、道路、街道名称、城市名称、河流等。这是一个让你更熟悉这个地区的基本地理

现在,我不需要平移,可能只有两三个缩放状态

我所看到的所有将交互功能叠加到地图上的可视化效果似乎都是将图像用于底层地图:,等等。所以我想我的问题是:

  • 为什么有些地图使用图像作为“背景”在现有地图的基础上进行构建是最简单的方法吗?它的性能更好吗

  • 如果我使用图像方法,我可以添加的功能是否有任何限制?我希望能做一些事情,如风图、动画、热图等

  • 使用图像的版权含义是什么?我想答案是“取决于我使用的图像”,但是否有一些标准库没有附加任何字符串?例如,我知道如果我使用谷歌地图,我必须显示他们的徽标,还有API限制,等等。有没有完全开放的标准源

  • 是否有纯粹通过TopoJSON添加地理信息的示例?


  • 很抱歉,如果其中一些看起来很明显,但我对地图完全陌生,只是不知道标准做法。谢谢你的帮助

    快速回答您的问题。希望有更多绘图经验的人能为您提供更多详细信息:

  • 为什么有些地图使用图像作为“背景”?

    主要是文件大小和计算时间。绘制包含建筑物、道路和地形的完整地图需要大量数据和大量时间供浏览器渲染。如果浏览器DOM变得太复杂,则即使在原始图形之后,它也会减慢所有交互

  • 如果我采用图像方法,我可以添加的功能是否有任何限制?

    大多数交互式地图使用多个图层是有原因的。背景图像最适合于底层的“地形”类型的图像,任何您想要交互的东西都应该放在SVG的顶部

  • 使用图像的版权含义是什么?

    如果你使用某人的图像,你必须遵守他们的许可证。你可能想看看这个

  • 是否有纯粹通过TopoJSON添加地理信息的示例?

    我想这取决于你所说的“地理”是什么意思;Mike Bostock已基于生成了多种特性的topoJSON

    至于它是否有意义:TopoJSON直接编码路径/边界,并将区域编码为由一组边界包围的区域。您可以使用它对街道和河流进行编码,甚至对建筑轮廓进行编码,但您不需要保存任何文件大小,因为这些路径通常不会像区域边界那样重复。相对于使用图像分幅,文件大小的任何改进都会被增加的处理时间所抵消


  • 非常有帮助,非常感谢!这是有道理的,我只是不知道这是怎么做的,我以为所有的d3地图都是用d3.geo制作的。非常好的资源,尤其是OpenStreeMap。我会看看的。我遇到的AmeliaBR似乎在SVG中绘制了所有部分。有什么见解吗?这很有趣——它仍然使用图像“分片”作为背景,但分片是SVG。我想好处在于SVG属性都是预先计算的,而不必在运行时计算地图的投影和比例。而且,您仍然可以根据地图的位置根据需要加载每个磁贴——您不需要一次加载整个数据集。