
A recent problem that has come to light involves the overlap of nodes in maps with a large number of nodes.
The problem was not immediately obvious when I was developing the node positioning function as I was testing it with chains of nodes which are relatively distributed.
But it can be clearly seen when you look at a purely heirachal map with no node chains for exampl: [Working with HTML in dreamweaver].
I considered the problem of overlap when i designed the positioning function. The possibility of overlap was the initial motivation behind succesively scaling child nodes and connecting lines. Scaling nodes in this way naturally leads to an efficient node packing in 2d space as it follows a self similar fractal pattern. +The root of the issue comes from the fact that the best solution for packing nodes mathematicaly does not result in the most readable nodes or the best user experience.
Essentially solving the problem by adjusting the scaling constant results in faster exponential scaling of child nodes, shrinkling branches and nodes. However this makes the user spend the majority of thier browsing time zooming in and out of the map having to constantly change scales to read the node text.
So what to do?
Well one solution would be to redesign the positioning function to create an auto-avoidence script that knows where its nearest nieghbour is an moves out of the way. There are a number of ways to do this in flash but all require to much of a sacrafice in control of where the node is positioned.
An alternative solution is to make a small adjustment in the positioning function to incorperate the number of children the parent of the node has and shink all sucessive braches from the node. This amounts more to dynamic scaling based on the number of siblings rather than a fully fledged avoidence script. This would require less computing power and would give a more organized structure.
In an ideal situation i could have the best of both worlds, create an efficient avoidence script that elasticly positions nodes within a set degree of separation. It would give a great organic feel to the map but may create unpredictable change to the overal structure as the node settle into place.
Im confident i can adjust the positioning script but it will have to wait iuntill i have created all the trial maps so that i can get a good feel for the typical range of map structures and asess the degree at which i will need to modify the mapping engine.