D3.js 如何使用d3js避免地图上的重叠圆

D3.js 如何使用d3js避免地图上的重叠圆,d3.js,overlapping,D3.js,Overlapping,我把许多圆圈放在地图上,当鼠标移到上方时,圆圈会改变颜色并显示一些文字,如图所示。问题是,由于相同的地理位置,一些圆相互重叠,只有最上面的圆起作用。摆脱这种局面的最好办法是什么?我尝试手动更改地理信息,这很乏味,由于无法控制重叠,因此效果不太好。在我的例子中,在同一个地理位置上可能有多达5个圆圈重叠 有几个注意事项: 我也有同样的问题。我通过移动点来处理它,这样它们就不会重叠,即使点的位置没有准确地放在地图上。我的弹出文本说明了位置,这样就可以工作了。在我的例子中,我使用的是旧的skool h

我把许多圆圈放在地图上,当鼠标移到上方时,圆圈会改变颜色并显示一些文字,如图所示。问题是,由于相同的地理位置,一些圆相互重叠,只有最上面的圆起作用。摆脱这种局面的最好办法是什么?我尝试手动更改地理信息,这很乏味,由于无法控制重叠,因此效果不太好。在我的例子中,在同一个地理位置上可能有多达5个圆圈重叠

有几个注意事项:

  • 我也有同样的问题。我通过移动点来处理它,这样它们就不会重叠,即使点的位置没有准确地放在地图上。我的弹出文本说明了位置,这样就可以工作了。在我的例子中,我使用的是旧的skool html图像映射,它覆盖了带有仔细映射的热点的实际图像文件

  • 你可以跳转到一个常规的地理绘图软件,使用单个的图钉或它们的“云”显示来显示位置太近的图钉。当您放大地图时,“云”将恢复为单独的pin图标。这确实允许用户自己放大,并且在移动设备上工作良好。这是可行的,但绝对不是D3

  • 我确实看到了一个很酷的放大镜工具,它是一个JavaScript实现。但这只适用于图像。如果您有很强的动机,也许您可以破解代码并实现D3(它只是使用SVG元素)。您可以看到将鼠标拖动到该页面上的图像上

  • 该功能使用了一个名为“zoomie.js”的工具,为您定位的目的是,在缩放模式下,地图上的一组点定位器具有足够的间距,可以清楚地识别。不过,我不知道你将如何处理鼠标悬停事件。我想你可以让文本在放大镜模式下始终可见

  • 问你几个问题:你有多少用户使用移动设备?手机上没有鼠标盖。他们将如何获得鼠标悬停效果


    • 以下是两种集群方法:


      另一种方法是使用;不过,我不确定它是如何应用于地图的。

      在iPhone和iPad上,鼠标悬停效果是通过单击圆圈触发的。谢谢你提供的信息。