我使用d3.xml(...)
将一个svg/xml file加载到d3中
这是SVG的output
我还有一个小的JSON数据集
const data = [{
"id": "polygon5256", //roof
"value": 39.5
},
{
"id": "polygon1628", //grass
"value": 3.93
},
{
"id": "polygon5254", //left wall
"value": 3.14
},
{
"id": "path5894", //door step
"value": 20.98
}
]
我正在尝试将JSON数据集中的ID与XML数据中的相应ID(多边形和路径)连接起来。您知道我还可以如何将可选择的路径/多边形限制为JSON数据中的那些吗?因此,只有可用的ID会受到鼠标事件的影响?
这是我的jsfiddle
任何帮助都将不胜感激
1条答案
按热度按时间hlswsv351#
在你的小提琴中,你有
d3.select('#polygon5256')
,但是你可以用selectAll
和一个不同的CSS选择器向任何多边形添加事件:您也需要
path
(用于门阶),因此需要的CSS选择器为:在处理程序中,您可以通过以下方式获取多边形的
id
(因为您使用的是d3 v5.9.2):我已经改变了你的fiddle有一个单一的可见
div
,其中mouseover和mouseout处理程序只是填充标签(如果在data
中可用)或清除文本。工作示例:
第一个
编辑
如果您想将路径/多边形限制为JSON数据中的路径/多边形,您可以换出以下内容:
为此(请注意,当我们在函数中引用
data
数组时,render
的函数签名必须更改):工作示例: