放大和缩小 d3 地图时如何查询数据集?

Posted

技术标签:

【中文标题】放大和缩小 d3 地图时如何查询数据集?【英文标题】:How do you query your dataset when you zoom into and out of a d3 map? 【发布时间】:2016-06-18 09:39:00 【问题描述】:
    如何为 d3 地图添加交互性? 我想添加功能以在您放大和缩小 d3 地图时查询我的数据集。是否有回调或其他东西可以让我做到这一点?2.1 我还希望缩放后显示的新数据的过渡相当无缝。

【问题讨论】:

通常您使用与使 html 交互、点击、悬停等相同的事件。 你喜欢这个例子吗? bl.ocks.org/mbostock/4132797我很确定您可以为“靠近”视口的图块创建自定义加载函数,以便查询您的数据库。 【参考方案1】:

d3.behavior.zoom has 3 event handlers:

1.) zoomstart - 在缩放手势开始时(例如,touchstart)。

2.) 缩放 - 当视图发生变化时(例如,touchmove)。

3.) zoomend - 在当前缩放手势结束时(例如,touchend)。

所以,您的情况似乎适合 zoomend 场景:

var zoom = d3.behavior.zoom()
  .on("zoom", zoomed)
  .on("zoomend", zoomend);

function zoomed() 
  features.attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");


function zoomend()
  // query dataset and do awesome stuff!!

【讨论】:

以上是关于放大和缩小 d3 地图时如何查询数据集?的主要内容,如果未能解决你的问题,请参考以下文章

unity放大缩小很慢

放大后地图缩小

D3 如何以文本或使用图例显示我的数据集

Maphilight() 在放大/缩小图像地图后停止正常工作

如何在 D3 中检索嵌套数据集的键值

d3 - 我如何找到一个国家的正确预测?