Re: [Hampshire] map creation software

Top Page
Author: Hugo Mills
Date:  
To: edward.beckmann, Hampshire LUG Discussion List
CC: 
Subject: Re: [Hampshire] map creation software

Reply to this message
gpg: failed to create temporary file '/var/lib/lurker/.#lk0x584b0100.hantslug.org.uk.18246': Permission denied
gpg: keyblock resource '/var/lib/lurker/pubring.gpg': Permission denied
gpg: Signature made Wed Jan 23 14:32:52 2008 GMT
gpg: using DSA key 20ACB3BE515C238D
gpg: Can't check signature: No public key
On Wed, Jan 23, 2008 at 02:00:25PM +0000, ed wrote:
> I want to express a matrix of interconnecting data in the form of a map,
> like the london underground. Does anybody know of software to do this?
>
> I have a list of subjects which are categorised, with some related to
> each other (nodes and connections) - can a piece of (free) software make
> a diagram out of that matrix? I picture the categories as the
> underground lines and the subjects as stations.


The correct term for this kind of thing is a graph -- that may help
you in your search.

Very basic and hard to tune, but a package called "graphviz" may
work for you, depending on the density of the arcs in the graph. (Of
course, very dense graphs are very difficult to lay out anyway, and if
you have a dense graph you may not be able to display it adequately at
all).

Graphviz uses a text-based input file to define the shape of the
graph, and then has several different tools (dot, twopi, circo, neato,
fdp) to generate the graph layout in different ways. Much playing
around is usually required for any non-trivial graph. This is a
difficult and complex area, unfortunately.

A quick tutorial:

The input file defines nodes (stations) and edges (lines joining
the nodes). You can label both nodes and edges if you want to. A
non-directed graph (i.e. one where all edges go both ways) would look
something like this:

graph Foo {
n1 [label="Waterloo"];
n2 [label="Embankment"];
n3 [label="Blackfriars"];

n1 -- n2 [color=#000000,label="Northern Line"];
n2 -- n3 [color=#ffff00,label="Circle Line"];
}

You would then save this as map.dot (or whatever), and run it
through the relevant drawing algorithm:

dot -Tps -omap.ps map.dot

Hugo.

-- 
=== Hugo Mills: hugo@... carfax.org.uk | darksatanic.net | lug.org.uk ===
  PGP key: 515C238D from wwwkeys.eu.pgp.net or http://www.carfax.org.uk
  --- I am but mad north-north-west:  when the wind is southerly, I ---  
                       know a hawk from a handsaw.