当前位置: 首页 > 知识库问答 >
问题:

在D3.js地图可视化中使用来自两个独立geoJSON文件的数据

呼延河
2023-03-14

我正在制作一个交互式世界地图可视化,用户应该能够放大一个国家,然后看到该国的更多细节(例如,如果该国是美国)。

到目前为止,我有一个geoJSON文件用于世界各国的数据,另一个用于中国各省的数据。问题是我需要把中国省的地图放在中国在世界地图上的地方。尽管两张地图的中国边界形状是一样的,但缩放不一样,这也是中国地图翻译的一个问题。

最终结果应该类似于以下内容:http://techslides.com/demos/d3/us-zoom-county.html

但在这种情况下,所有数据都在一个单一的geoJSON文件中,包含每个州的美国州和县。

如果有某种方法可以合并两个或更多的geoJSON文件,这将是非常棒的,在我的情况下可能会工作。

如何在同一地图可视化中使用来自不同geoJSON文件的数据?

提前感谢!

共有1个答案

谢财
2023-03-14

我设法解决了这个问题,它比我想象的要容易。解决办法是先计算中国的边界面积,然后在那里绘制地图。下面是一些代码

var projectionChina = d3.geoMercator();
var pathChina = d3.geoPath(projection);

g.append("g")
  .attr("class", "china")
  .attr("width", boundingArea.width)
  .attr("height", boundingArea.height)
  .selectAll("path")
    .data(data.geometries)
  .enter().append("path")
    .attr("d", pathChina);

其中BoundingArea是封装中文边框的矩形。

希望这能帮助一些有同样问题的人。

 类似资料:
  • 本文向大家介绍JavaScript可视化图表库D3.js API中文参考,包括了JavaScript可视化图表库D3.js API中文参考的使用技巧和注意事项,需要的朋友参考一下 D3 库所提供的所有 API 都在 d3 命名空间下。d3 库使用语义版本命名法(semantic versioning)。 你可以用 d3.version 查看当前的版本信息。 d3 (核心部分) 选择集 d3.sel

  • 目前想要的效果是根据数据绘制散点图,鼠标框选得到选中的数据 纯d3的案例: https://observablehq.com/@d3/brushable-scatterplot-matrix 但d3太复杂了,看了几个库: vega-lite,Observable Plot,没找到交互方面的介绍,有推荐吗? 谢谢

  • 问题内容: 我已将ELK配置为脱机收集数据,日志文件如下所示: 我正在寻找的是时间线上的平均连接时间。 我无法在消息中添加更多信息,特别是无法在断开连接消息中添加连接时间。 问题答案: 如果要用Logstash加载ES,则可以使用过滤器来组装相关的离散日志行。这个想法是要注意一个持续时间较长的事件何时开始(即用户已连接),然后在同一用户的事件通过以下时间结束时结束该事件:(请注意,您的grok模式

  • 我正在使用D3JS库来显示地图。加载美国各州地图可以正常工作,但如果我尝试加载单个州的县地图,则无法正常工作。我在所有州使用的文件位于https://raw.githubusercontent.com/d3/d3.github.com/master/us-10m.v1.json.我当前使用的状态映射是https://raw.githubusercontent.com/deldersveld/top

  • Folder1--->log1.log                     log2.log                  log3.log Folder2--->log1.log                     log2.log                  log3.log 我想让我的记录器独立地登录到文件中。 到目前为止,我已经创建了3个RollingFileAppend