ich eine Woche lang versucht nun, habe dies zu realisieren Map+LegendKarte + Legende auf demselben svg
Ich kann immer noch nicht richtig
meine Legende anzuzeigen, wenn ich diese folgen
var legend = svg.selectAll("g.legend")
.data(extent_color_domain)
.enter().append("g")
.attr("class", "legend");
var ls_w = 20, ls_h = 20;
legend.append("rect")
.attr("x", 20)
.attr("y", function(d, i){ return h - (i*ls_h) - 2*ls_h;})
.attr("width", ls_w)
.attr("height", ls_h)
.style("fill", function(d, i) { return color(d); })
.style("opacity", 0.8);
legend.append("text")
.attr("x", 50)
.attr("y", function(d, i){ return h - (i*ls_h) - ls_h - 4;})
.text(function(d, i){ return legend_labels[i]; });
Die Legende wird zuerst angezeigt, dann erscheint die Karte und überschreibt sie.
Ich möchte die Karte und die Legende gleichzeitig anzeigen lassen und die Legende in der rechten unteren Ecke des m anzeigen ap (wo Leerzeichen befindet)
ich lese viel über z-Index so viele Dinge auf dem CSS-Teil meiner .legend Ich habe versucht, aber es kann nicht
herauszufindenThank Sie so sehr für Ihre Hilfe und für die Erklärung, was meine Fehler sind
Vielen Dank für die schnelle Rückmeldung ^^ es zu schätzen wissen. Ich bekomme nicht Ihre "Erste ...", wenn ich Ihren Code kopieren/einfügen, wird die Legende zuerst angezeigt. Verstand, den Kolben zu ändern, weil ich es immer noch nicht verstehe. Vielen Dank – MFAMOROCCO
@MFAMOROCCO In Bezug auf meinen ersten Punkt: Sie erstellen eine Gruppe, um sowohl Rechteck als auch Text für jeden Eintrag in der Legende zu halten. In Ihrem Code positionieren Sie das Rechteck und den Text einzeln, was nicht notwendig ist, da Sie die ganze Gruppe positionieren können. – Sirko
In Bezug auf das "angezeigte erste" Problem. Wenn Sie Karte und Legende gleichzeitig anzeigen möchten, verschieben Sie die Legendenerstellung in den '.json()' Callback, der Ihre Map malt. Btw Modifizieren Ihrer Plunker macht keinen Sinn, da die Karte sowieso dort nicht angezeigt wird. – Sirko