Posts Tagged svg

使用Qunee组件制作在线地图

地图是一种普遍应用,按准确度分精确地图(GIS)和示意地图(MapChart),前者支持各种地图投影与坐标系,譬如ArcGIS,后者使用相对坐标系,或者支持简单的WGS84经纬网坐标系,比如ILOG Elixir地图组件,示意地图再按图片类型分,可分为:栅格地图与矢量地图,Qunee组件适合制作矢量示意地图。

maps

HTML5之图形绘制技术(Canvas Vs SVG)

HTML5中的2D图形绘制技术

Canvas和SVG是HTML5中主要的2D图形技术,前者提供画布标签和绘制API,后者是一整套独立的矢量图形语言,成为W3C标准已经有十多年(2003.1至今),总的来说,Canvas技术较新,从很小众发展到广泛接受,注重栅格图像处理,SVG则历史悠久,很早就成为国际标准,复杂,发展缓慢(Adobe SVG Viewer近十年没有大的更新)

Canvas_Vs_SVG1

Canvas vs SVG

<canvas>和<svg>都是HTML5推荐使用的图形技术,Canvas基于像素,提供2D绘制函数,是一种HTML元素类型,依赖于HTML,只能通过脚本绘制图形;SVG为矢量,提供一系列图形元素(Rect, Path, Circle, Line …),还有完整的动画,事件机制,本身就能独立使用,也可以嵌入到HTML中,SVG很早就成为了国际标准,目前的稳定版本是1.1 – http://www.w3.org/TR/SVG/,两者的主要特点见下面的表格:

Canvas_Vs_SVG2

SVG与Canvas主要特点

根据两者的不同特点,Canvas和SVG有各自的适用范围

Canvas适用场景

Canvas提供的功能更原始,适合像素处理,动态渲染和大数据量绘制

SVG适用场景

SVG功能更完善,适合静态图片展示,高保真文档查看和打印的应用场景

canvas_or_SVG

Firefox上的两个SVG Bug

SVG Use 标签bug
一个是use类型引用image第一次不显示的问题,究其根源是image load后,不会派发事件告诉use节点刷新,这个问题困扰我们很久,后来给firefox提交了 bug(https://bugzilla.mozilla.org/show_bug.cgi?id=575210),

问题表现是,第一打开图片不显示,刷新一次就可以了

firefox很快回复了bug,与bug548795相同,而Bug 548795 depends on bug 558663