我正在研究显示几个航点的地图。现在它们应该用一个简单的笔划连接以显示我尝试使用标签的路径。
画布已设置好,绘制发生在 javascript 中,该 javascript 评估绘制位置的位置并描边路径。问题是画布没有显示,但脚本中调用的所有函数都正确编写和调用。
html代码如下:
<body>
<div id="controller">
<div id="zeichenfenster">
<span id="maps"></span>
<span id="objects"></span>
<canvas id="canvas" height="1000px" width="2000px"></canvas>
</div>
</div>
</body>
...这是javascript:
function connectDrawables(drawable1, drawable2, id) {
connections[id] = "" + drawable1 + "|" + drawable2;
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext('2d');
ctx.clearRect(0, 0, 2000, 1000);
ctx.lineWidth = 5.0;
ctx.lineCap = "round";
ctx.strokeStyle = "#FFFFFF";
for(var k in connections) {
var string = connections[k];
var sub = string.split("|");
var element1 = document.getElementById(sub[0]);
var element2 = document.getElementById(sub[1]);
var x1 = 0.0 + parseFloat((element1.style.marginLeft).replace("px", "")) + 8;
var y1 = 0.0 + parseFloat((element1.style.marginTop).replace("px", "")) + 7;
var x2 = 0.0 + parseFloat((element2.style.marginLeft).replace("px", "")) + 5;
var y2 = 0.0 + parseFloat((element2.style.marginTop).replace("px", "")) + 4;
//alert("ID: " + id + "\nElement1: " + drawable1 + " x1: " + x1 + " y1: " + y1 + "\nElement2: " + drawable2 + " x2: " + x2 + " y2: " + y2);
ctx.beginPath();
ctx.moveTo(x1, y1);
ctx.lineTo(x2, y2);
ctx.stroke();
}
}
drawable1 和 2 是航点的 id,connections 是一个关联数组,id 是唯一的 id。
如果我将画布放在其他标签“上方”的 html 代码中,则只有一个很大的空白区域,但绘图也不起作用。
谢谢你的帮助 :)