Я программирую API-интерфейс JSON конвертера и использую холст для рисования диаграмм. В одном из моих текстовых значений элементы меток не написаны на холсте, но я могу прочитать его с помощью console.log. Не знаю, в чем проблема и как ее исправить. Надеюсь, это будет легко исправить, вот код ...
var nodename = json.kmap.elements.nodes[nodeIndex].data.name;
console.log(nodename);
ctx.font = "35px Arial";
ctx.textAlign = "center";
if (nodename.length > 25){
var strcut = nodename.indexOf(" ", 25);
if (strcut != -1){
var nodename1 = nodename.slice(0, strcut);
var nodename2 = nodename.slice(strcut, nodename.length);
ctx.globalAlpha = alpha;
ctx.fillStyle = '#444444';
ctx.fillRect(xpos - ctx.measureText(nodename1).width / 2, ypos - (45 * multip) - 30,ctx.measureText(nodename1).width, 35);
ctx.fillRect(xpos - ctx.measureText(nodename2).width / 2, ypos - (30 * multip) - 30,ctx.measureText(nodename2).width, 35);
ctx.globalAlpha = 1;
ctx.fillStyle = '#555555';
ctx.fillText(nodename1, xpos , ypos - (45 * multip));
ctx.fillText(nodename2, xpos , ypos - (30 * multip));
}
} else {
ctx.globalAlpha = alpha;
ctx.fillStyle = '#444444';
ctx.fillRect(xpos - ctx.measureText(nodename).width / 2, ypos - (30 * multip) - 30,ctx.measureText(nodename).width, 35);
ctx.globalAlpha = 1;
ctx.fillStyle = '#555555';
ctx.fillText(nodename, xpos, ypos - (30 * multip));
}
ctx.beginPath();
ctx.arc(xpos, ypos, radius, 0, 2*Math.PI);
ctx.fillStyle = '#a3d039';
ctx.fill();