It may be a good thing to integrate canvas to GLPI. These canvas can be use to represente hierarchy of entities or other trees regarding entities. Remi suggested the use of canvasxpress. But that's not the only one that is available.
The plugin, below can show a first possible integration of canvas (applied on
Location class). It proposes the class
PluginCanvasCanvas that can be use the same way than
PluginCanvasCanvas::show($itemtype, $params=array()). It requires lots of improvement if we wan't to transfer it from plugin to the core of GLPI.