HTML5根据图像地图绘制多边形

维利米尔·切恰夫斯基

我想了一个来绘制HTML5多边形<area><map>我需要将其与单击的区域相同(从而模拟悬停效果)。我想出的代码是:

$("area").click(function () {
  var $input = $(this);
  var obj = $input.attr("coords");
  var poly = '[' + obj + ']';
  alert(poly);
  var canvas = document.getElementById("myCanvas")
  var ctx = canvas.getContext('2d');
  ctx.fillStyle = '#f00';

  ctx.beginPath();
  ctx.moveTo(poly[0], poly[1]);
  for (item = 2; item < poly.length - 1; item += 2) {
    ctx.lineTo(poly[item], poly[item + 1])
  }

  ctx.closePath();
  ctx.fill();
});

现在问题出在该语句中var poly = '['+obj+']';,因为如果我手动输入坐标而不是obj变量,该语句将起作用,但是我需要在它周围加上[]才能使函数起作用。

太空狗

问题是$ input.attr(“ coords”)返回一个字符串,例如"10,10,100,100"或类似的字符串您正在尝试建立一个数组,但只是得到一个类似的字符串"[10,10,100,100]"

为了使用字符串创建数组,您可以使用split(','),它将在每个','处拆分字符串,并返回一个数组,因此您可以执行以下操作:

var poly = $input.attr("coords").split(',');

然后聚会像的数组:["10", "10", "100", "100"]

如果您已经有图像地图数据,则可以在画布上绘制区域并使它们可单击,而不是使用地图,这取决于您拥有多少区域以及您想做什么。

我还假设您在图像图中没有任何圆圈...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Google地图上绘制多边形

来自分类Dev

将图像绘制为多边形

来自分类Dev

一个可重用的功能,可以使用html5 canvas将图像裁剪为多边形

来自分类Dev

在HTML中使用地图标记时,Google Chrome会绘制多边形

来自分类Dev

使用Google地图在多边形内绘制较小的多边形

来自分类Dev

使用Google地图在多边形内绘制较小的多边形

来自分类Dev

使用JavaScript在Google地图中绘制多边形

来自分类Dev

如何在Google地图上删除绘制的多边形

来自分类Dev

在Google地图中绘制和删除多边形

来自分类Dev

无法在Google地图上绘制多边形

来自分类Dev

ggmap包在地图上绘制填充的多边形

来自分类Dev

无法在Google地图中绘制多边形

来自分类Dev

glDrawElements绘制多边形

来自分类Dev

绘制多边形:限制?

来自分类Dev

绘制多边形:限制?

来自分类Dev

如何定义html5 svg多边形点以创建图形

来自分类Dev

可以刻在圆形HTML5画布上的不规则多边形

来自分类Dev

在画布jQuery HTML中绘制多边形

来自分类Dev

带图像的多边形

来自分类Dev

带图像的多边形

来自分类Dev

laravel 5根据路线返回HTML或JSON

来自分类Dev

必应地图中的多边形区域

来自分类Dev

Google地图:透明多边形

来自分类Dev

必应地图多边形信息框

来自分类Dev

Google顶部的地图路线多边形

来自分类Dev

UWP 地图图层多边形错误

来自分类Dev

Google地图绘制多边形并删除前一个

来自分类Dev

在正投影中绘制世界地图时剪切多边形

来自分类Dev

通过加入最外面的标记以编程方式在地图上绘制多边形