Używam projekcji albersUSA do wyświetlania mapy. Chcę dodać nazwę stanów do każdego stanu.Dodawanie nazw stanów do mapy w d3.js
Oto, co próbowałem i widzę nazwy stanów w źródle, ale nie widzę ich renderowanych. Co robię źle?
var width = 1060,
height = 600,
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
svg.append("rect")
.attr("class", "background")
.attr("width", width)
.attr("height", height)
.on("click", click)
.on("mousemove", mousemove);
var g = svg.append("g")
.attr("transform", "translate(" + width/2 + "," + height/2 + ")")
.append("g")
.attr("id", "states");
var projection = d3.geo.albersUsa()
.scale(width)
.translate([0, 100]);
var path = d3.geo.path()
.projection(projection);
draw();
function draw(){
d3.json("readme.json", function(json) {
g.selectAll("path")
.data(json.features)
.enter()
.append("path")
.attr("d", path)
.append("svg:text")
.text(function(d){
return d.properties.name;
})
.attr("x", function(d){
return -path.centroid(d)[0];
})
.attr("y", function(d){
return -path.centroid(d)[1];
});
});
}
Dlaczego powracasz '-path.centroid (d) [0];', czy powinno to być 'path.centroid (d) [0];'? – Duopixel