SVG Mapの、animation要素の課題

高木です。
SVG Map Moduleの検討を行っている中で、SVG Mapの機能の核心といえ
るanimation要素(12.4章)に関して新たな課題が見つかりました。

1:width,heightには、"%"による記述ができない
 SVG1.2 Tinyではsvg要素内のwidth,height属性以外には、"%"を含む
ユニットを表記することができないと記載されているようです。
参考: http://www.w3.org/TR/SVGMobile12/types.html#
DataTypeLength

SVG Mapでwidth,heightを指定したくない目的は、親のSVGのビューポー
トに収まっていれば参照先のコンテンツを無条件で描画させたい為 と
いうことを説明しました。

これを実現するためには、width,heightの値を数値として明示すること
は親のビューポートが確定しないかぎり難しく、そのため100%と記述す
れば良いと考えていました。しかし、上記のように不可能のようです。


2:fill="freeze"を書かないと描画されない
正確には描画されないのではなく、描画が維持されないというのが正し
いでしょうが、fill="freeze"を記述しないと、事実上描画されないと
思います。(他のSVG timing attributesを書かなかった場合) #こ
の解釈で合っていますでしょうか?

これはanimation要素が、SVG timing attributes(アニメーションのた
めの属性) をサポートしているために起こることで、
その中のfill属性のデフォルトが"remove"であることに起因しています。

これも、animation要素が基本的に動画のSVGを扱うことを目的としてい
るため、SVG Mapのユースケースではいわば無用な属性を追加しなけれ
ばなりません。

ちなみに、SVG Map Toolkitは、animation要素をサポートしており、
(ただし、先ほどのwidth,height属性を省略したときに無条件で描画す
る点は違いますが)fill="freeze"を入れればanimation要素で静的な地
図のハイパーレイヤリングが実現できます。

Received on Monday, 16 February 2009 04:03:43 UTC