向附加了D3的SVG圆添加锚定标记
我有一个用D3生成的SVG符号图。这张地图包含100多个符号。我的问题是,如何向每个圆添加锚定标记?我将从一个外部CSV文件中提取每个符号的链接,但在这一点上,我一辈子都不知道如何为每个符号添加锚定 我的符号生成/附加如下:向附加了D3的SVG圆添加锚定标记,svg,d3.js,append,Svg,D3.js,Append,我有一个用D3生成的SVG符号图。这张地图包含100多个符号。我的问题是,如何向每个圆添加锚定标记?我将从一个外部CSV文件中提取每个符号的链接,但在这一点上,我一辈子都不知道如何为每个符号添加锚定 我的符号生成/附加如下: circles.selectAll("circles") .data(schools) .enter().append("svg:circle") .attr("cx", function(d,i) {
circles.selectAll("circles")
.data(schools)
.enter().append("svg:circle")
.attr("cx", function(d,i) {return positions[i][0]})
.attr("cy", function(d,i) {return positions[i][1]})
.attr("r", function(d,i) {return 6})
.attr("i", function(d,i) {return i})
.attr("class", "symbol")
.on("mouseover", function(d,i){
var index = $(this).attr("i");
// console.log(d); ****This is all the data - ie: Name, lat, long, index, state, etc..
return show_bubble(d, index);
}).on("mouseout", function(){
return hide_bubble();
}).on("mousemove", function() {
return move_bubble();
})
我试过:
d3.selectAll("#circles")
.append("a")
.attr("href", "google.com");
不过,这只是将包含锚标记中符号的整个组包装起来
请帮忙 我通常在圆圈中添加文本的方式是对数据进行另一个绑定,但我不会添加圆圈,而是添加文本 因此,代码可以如下所示:
circles.selectAll("circle-text")
.data(schools)
.enter().append("text")
.attr("x", function(d,i) {return positions[i][0]})
.attr("y", function(d,i) {return positions[i][1]})
.text( function (d) { return "Hello World" });
然后,如果您想要锚定标记而不是纯文本,请尝试阅读以下示例:
似乎您需要一个特殊的元素:“svg:a”来创建超链接
希望这能有所帮助。如果您只想导航用户onclick,您可以轻松添加一个click事件?谢谢您的回复。这确实会附加一个与圆协调的标记,但我需要做的是将每个附加的圆包装在一个标记中。这样,整个圆就变成了一个链接。此外,x和y值不能正确定位定位点。有什么想法吗?你必须附加一个类型为“a”的标记,这样超链接才能工作,所以首先附加一个类型为“a”的标记,然后再附加一个类型为“circle”的标记,这样圆就位于a内。此外,如果x和y值的位置不正确,您将不得不开始添加像素。谢谢,这很有效!谢谢你的其他回复,大量的帮助。