地理数据可视化

canvas/svg/webgl

Posted by Lan on July 29, 2020
  • svg
    • 用xml技术来描述二维图形的语言
    • svg其实诞生的比canvas要早
    • 所绘制的图形是矢量图,所以不会失真
    • SVG 适用于矢量图,低数据量低绘制频率的场景,如图形、图表;
    • 浏览器 js 配有相应的操作api,可以不再依赖其他的API或组件而直接绘图,相当于2D的API。
  • canvas
    • h5新提出来的内容
    • 当作一个画布,绘制的是标量图,可以引入jpg/png等
    • Canvas 适用于位图,高数据量高绘制频率(帧率)的场景,如动画、游戏;
    • 2d上下文就是普通的canvas2d绘图,3d上下文就是调用webgl
  • webgl
    • WebGL 是以 OpenGL ES 2.0 为基础的一套 浏览器 3D图形API (HTML5),目前最新版本是2.0,基于OpenGL ES 3.0规范实现
    • WebGL 无论如何都需要一个显示对象来呈现,这个对象就是 Canvas,仅此而已,WebGL不对Canvas有任何附加的操作API, 那部分属于浏览器js支持的范畴。
    • Three.js、Babylon.js、Blender4Web等是几种知名的 WebGL 开发框架,对 WebGL 基础操作做了大量的封装,可以拿来就用, 即使不了解 WebGL规范的细节。
  • svg和canvas的效率方面

    • 渲染同一个对象,分辨率越大,canvas效率越低.
    • 节点越多,svg效率越低