使用d3制作增强本地地图的一些选项

时间:2014-03-04 21:12:30

标签: d3.js maps

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

到目前为止,我已经能够得到波士顿的大纲。但是基本地图应该与您在Google地图中看到的内容相当 - 它应该包含建筑物,道路,街道名称和城市名称,河流等。基本地理位置使该地区更加熟悉。

目前,我不需要平移,可能只有两三种缩放状态。

我见过的所有可视化对象都将交互式特征叠加到这样的地图上似乎使用了基础地图的图像:windhistorypolymapsgoogle maps等等。所以我想我的问题是:

  1. 为什么有些地图使用图片作为“背景”?这是在现有地图之上构建的最简单方法吗?性能更高吗?

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

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

  4. 是否有任何纯粹通过TopoJSON添加地理位置的示例?

  5. 很抱歉,如果其中一些看似显而易见,但我对地图完全陌生,只是不了解标准做法。谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

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

  1. 为什么有些地图使用图片作为“背景”?

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

  2. 如果我采用图片方式,我可以添加的功能有任何限制吗?

    大多数交互式地图使用多个图层是有原因的。背景图像最适合底层的“土地”类型图像,任何你想要互动的东西都应该在SVG上面。

  3. 使用图片有哪些版权含义?

    如果您使用某人的图片,则必须遵守他们的许可。您可能需要查看OpenStreetMap project

  4. 是否有任何纯粹通过TopoJSON添加地理位置的示例?

    我想这取决于你所说的“地理”; Mike Bostock基于US Atlas data为各种功能生成了topoJSON。

    至于它是否有意义:TopoJSON直接编码路径/边界,并将区域编码为由一组边界包围的区域。您可以使用它来编码街道和河流甚至构建轮廓,但是您不会保存相对于常规GeoJSON的任何文件大小,因为这些路径通常不会像区域边界那样重复。相对于使用图像切片,文件大小的任何改进都会随着处理时间的增加而受到抵制。