I finally figured out the shearing problem with my map of Edinburgh. The GPS receiver outputs longitude/latitude coordinates, and the viewing software was defaulting to using a lon/lat projection to display them onscreen. However, if you buy a streetmap of Edinburgh it’ll probably use the “British Grid” projection, which is quite different. There’s just so many ways to project the surface of a sphere/ellipsoid onto a 2d screen. Using the raw lon/lat coordinates as your x/y pixel positions isn’t very helpful. While lines of latitude (the ones which run N/S) are all the same length, lines of longitude get shorter as you head further north. So by the time you get to Edinburgh (roughly 56 degrees north), the lines on longitude are cos(56 degrees), or roughly half as long as the equator (thank you Frink). So, near Edinburgh, 1/1000th degree of latitude near Edinburgh corresponds to 111m north/south, but 1/1000th degree of longitude corresponds to a mere 62m west/east. Hence my first attempt at mapping was stretched horizontally.
So, just switch the viewing projection to Transverse Mercator, which has the desired “up and across both use the same scale” property, and suddenly the map looks comfortingly like every other map of Edinburgh I’ve ever seen.
Now to add some depth. A few years ago, the space shuttle flew around a bit measuring the height of earths surface at a resolution of about 100m. And the Americans, being much cooler than the UK government, make all the data freely available. So you can just download a large GeoTIFF file from their website for your neighbourhood (Scotland, in my case). A GeoTIFF file is just a 16-bit greyscale with some metadata to tell you what part of the earth it corresponds to, it’s projection and stuff like that.
The results can be seen in the following images: Edinburgh where Arthurs Seat, Calton Hill and the Castle Rock can be easily seen, Scotland showing all the neaby hills, and a profile of the slope as you head up Leith Walk (cyclists will recognise the nasty steep bit at the end).
The height data isn’t terribly precise. For a start, the shuttle will have measured the height of the tallest buildings rather than the ground level! However, in practical terms it’s accurate enough to feed into a “cyclists routefinder” application, whereby you could request “find me a route from A to B avoiding steep hills”. Very important use.
I’m now working on producing semantic data about the roads. For example, “Princes St joins the Mound at coordinates x,y but cars cannot turn eastwards onto Princes St”. I’m also inquiring about the price of aerial photographs and satellite data, since that’d be a quick and easy way of making a map (although less fun than the GPS route).
Oh, turns out there’s going to be an article about free-as-in-speech map making in New Scientist in a couple of days times.