1
Я показываю несколько кругов на карте, и мне нужно добавить метку, на которой будет отображаться определенное значение. Это должно выглядеть следующим образом Красная линия не является необходимымD3JS - Ярлык над кругом
Проблема заключается в том, что если число внутри большой, он будет записан вне пределы прямоугольник. Как я могу это сделать? Как ширина прямоугольника может быть пропорциональна размеру внутри?
Javascript
//circle
data.append("circle")
.attr("class", "station")
.attr("r", 5)
.attr("cx", function(d) {
return (d.coordinates.x + 5000)/450;
})
.attr("cy", function(d) {
return (-d.coordinates.y + 170000)/450;
})
.style("stroke-width", .5)
.style("cursor", "pointer");
//box
data.append("rect")
.attr("width", 10)
.attr("height", 10)
.attr("x", function(d) {
return ((d.coordinates.x + 5000)/450 - 2);
})
.attr("y", function(d) {
return ((-d.coordinates.y + 170000)/450 - 10);
})
.attr("fill", "white");
//text
data.append("text")
.attr("x", function(d) {
return ((d.coordinates.x + 5000)/450 + 2);
})
.attr("y", function(d) {
return ((-d.coordinates.y + 170000)/450 - 2);
})
.style("font-size", "1.3 em")
.attr("text-anchor", "middle")
.text(function(d) {
return d.value;
})
.style("cursor", "pointer");
'd.value' это значение с плавающей точкой, таким образом, я не могу получить длину – Weedoze
I используется 'd.value.toString(). length' – Weedoze