向附加了D3的SVG圆添加锚定标记

向附加了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) {

我有一个用D3生成的SVG符号图。这张地图包含100多个符号。我的问题是,如何向每个圆添加锚定标记?我将从一个外部CSV文件中提取每个符号的链接,但在这一点上,我一辈子都不知道如何为每个符号添加锚定

我的符号生成/附加如下:

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值的位置不正确,您将不得不开始添加像素。谢谢,这很有效!谢谢你的其他回复,大量的帮助。