使用Canvas API 可以创建许多应用:  图形、图表、图片编辑,  其中最奇妙的一个应用是修改或覆盖已有内容。 最流行的覆盖图被称为热点图。 热点图可以用在城市地图上来标记交通路况, 或者显示风暴的活动情况。

在地图上只需要将canvas 叠放在地图上显示即可。 实际上就是用  canvas 覆盖地图, 然后再基于相应的活动数据绘制出不同的热度级别。

以下提供一个示例.

<!DOCTYPE html>
<html><title>HTML5 Canvas Example</title><style type="text/css">@import url("styles.css");#heatmap {background-image: url("mapbg.jpg");}</style><h1>HTML5 Canvas Example</h1><h2>Heatmap </h2><canvas id="heatmap" class="clear" style="border: 1px solid ; " height="300" width="300"> </canvas><button id="resetButton">Reset</button><script>function log() {console.log(arguments);}var points = {};var SCALE = 3;var x = -1;var y = -1;function loadDemo() {document.getElementById("resetButton").onclick = reset;canvas = document.getElementById("heatmap");context = canvas.getContext('2d');context.globalAlpha = 0.2;context.globalCompositeOperation = "lighter";function sample() {if (x != -1) {addToPoint(x,y)}setTimeout(sample, 100);}canvas.onmousemove = function(e) {x = e.clientX - e.target.offsetLeft;y = e.clientY - e.target.offsetTop;addToPoint(x,y)}sample();}function reset() {points = {};context.clearRect(0,0,300,300);x = -1;y = -1;}function getColor(intensity) {var colors = ["#072933", "#2E4045", "#8C593B", "#B2814E", "#FAC268", "#FAD237"];return colors[Math.floor(intensity/2)];}function drawPoint(x, y, radius) {context.fillStyle= getColor(radius);radius = Math.sqrt(radius)*6;context.beginPath();context.arc(x, y, radius, 0, Math.PI*2, true)context.closePath();context.fill();}function addToPoint(x, y) {x = Math.floor(x/SCALE);y= Math.floor(y/SCALE);if (!points[[x,y]]) {points[[x,y]] = 1;} else if (points[[x,y]]==10) {return} else {points[[x,y]]++;}drawPoint(x*SCALE,y*SCALE, points[[x,y]]);}window.addEventListener("load", loadDemo, true);</script>
</html>

HTML5之10 __使用 Canvas API创建 热点图相关推荐

  1. HTML5 学习手笔二:canvas API 绘制树形图案A

    上篇通过对canvas 画对角线,了解了一些canvas画图基本原理.现在可以利用HTML5 canvas API创建一个场景:带有长跑跑道的树林. 本篇大纲 用canvas API绘制树木的树冠 为 ...

  2. HTML5 创建热点图

    通过HTML5 canvas画布创建简单的热点图,当鼠标划过时产生热点,停留时间越长,热点亮度越高. 下面是HTML部分: <!DOCTYPE html> <html>< ...

  3. html5中图片热点,HTML5 创建热点图

    通过HTML5 canvas画布创建简单的热点图,当鼠标划过时产生热点,停留时间越长,热点亮度越高. 下面是HTML部分: #heatmap{background-image:url("ma ...

  4. 在Web应用程序中使用Canvas API

    更多HTML 5文章请查阅HTML 6在线网站http://www.html5online.com.cn 本文概述 本文介绍如何在一个Web应用程序中利用HTML 5中的Canvas API创建.编辑 ...

  5. 应用html5画布Apicss制作,程序设计HTML5 Canvas API

    复制代码 代码如下: try { document.createElement("Canvas").getContext("2d"); document.get ...

  6. html5 Canvas API

    2.1 Canvas 概述 Canvas本质上是一个位图画布,其上绘制的图形是不可缩放的,不能像SVG图像那样可以被放大缩小.此外,用Canvas绘制出来的对象不属于页面DOM结构或者任何命名空间. ...

  7. 用html做个猜字游戏,HTML5 Canvas API制作简单的猜字游戏

    这篇文章主要介绍了借助HTML5 Canvas API制作一个简单的猜字游戏的实例分享,游戏中每局会自动生成一个字母,玩家按键盘来猜测该字母是哪一个,需要的朋友可以参考下 二话不说,先上效果图以及源代 ...

  8. java canvas 缩放图片_详解如何用HTML5 Canvas API控制图片的缩放变换

    摘要:这篇HTML5栏目下的"详解如何用HTML5 Canvas API控制图片的缩放变换",介绍的技术点是"html5_canvas.canvas.Html5.控制图片 ...

  9. HTML5(五)——Canvas API

    什么是 Canvas API? Canvas API(画布)提供了一个通过 javascript 和 html 的 canvas 元素来在网页上实时绘制图形的方式.可用于动画.游戏.图标.图片编辑等多 ...

最新文章

  1. YOLOv4全文阅读(全文中文翻译)
  2. CSAPP(4):存储器层次结构
  3. 混合时空图卷积网络:利用导航数据改进交通预测效果 | KDD 2020
  4. Google 开源的依赖注入库,比 Spring 更小更快!
  5. 使用HTML5的canvas做一个会动的时钟
  6. linux的共享端口,Gogs与Linux共享SSH22端口
  7. 数值格式化,每隔三位加一个逗号
  8. 试验篇--thttpd安装与调试
  9. java调用net webservice_java调用.net的webservice
  10. 程序员基本功03常见JAVA集合的实现细节
  11. 商城项目:装nginx时碰到的各种问题
  12. Google搜索技巧总结
  13. 关于python的保留字_Python中的保留字
  14. Matlab中的continue、break和return语句
  15. 【April Fools Day Contest 2014F】【愚人节脑洞 OEIS大法】000001 输出序列某一项
  16. 【题解】【AcWing】1635. 最大团
  17. mysql 触发器delete_MySQL之触发器
  18. SVN中文版客户端下载安装
  19. 微信小程序漏洞:可下载任意微信小游戏源代码
  20. 如何打造城市夜游景点文化IP

热门文章

  1. java里面case是什么意思_什么是Java中的switch case语句以及如何使用它?
  2. APP机型兼容测试的手机选择
  3. 算术表达式求值演示(C/C++实现)
  4. vb计算机清除菜单代码,用VB编写简单的程序来清空文档菜单 (转)
  5. 推荐六款逆天好用的黑科技微信小程序,手机内存再小也可以任性耍
  6. 微信不显示王者荣耀连接服务器,王者荣耀省级不显示,王者荣耀不用微信怎么登录...
  7. 10个副业兼职创业,在家赚钱绝对真实
  8. 中小网站运营推广思路
  9. Sentinel SuperPro加密锁编程开发指南
  10. flutter 相机加入mask(遮罩层)