On Wed, Aug 29, 2007 at 05:52:48AM +0100, Andrew Black - lists wrote:
(Not specifically OG question but people here have interests in this direction)
I want to make a leaflet for an event and include a map. Most of the ways usually done for this are not strictly legal. I could just use the (non) defence of everyone does it but I would rather not.
I have noticed that OpenStreetMap has coverage of the area of Central London I am interested in. The simple way to make my map would be to screen scrape the browser window as a bitmap. Is there any better way, eg extracting an SVG file of a particular area.
I also want to add some annotations - eg route you get from tube to the venue. Frustratingly it is dead easy to do this online using Googlemaps. But this doesn't help legally for a printed or emailed leaflet.
There are two main methods used for rendering OSM data: OSMarender, which uses XSLT to transform the OSM XML data to SVG (which can then easily be rendered using a variety of methods) and mapnik, which uses Postgis (so requires a postgres database server).
For a small area, I'd probably find osmarender easier. I haven't used it for a while, but http://wiki.openstreetmap.org/index.php/Osmarender/Howto looks to be fairly informative.
As far as adding annotations, depending on what sort of thing you want to add it may be easiest to do so by hand with a vector graphics package (in the SVG file you get from osmarender). Alternatively, check out JOSM http://wiki.openstreetmap.org/index.php/JOSM. This is an OSM editing application - you should be able to download a bounding box using it, and then add your local annotations (as long as they're map-like ones - I'm not sure how you'd draw a route on, for example) and then not upload your changes, but save to a file instead.
If you want to get into editing with JOSM, you'll find http://wiki.openstreetmap.org/index.php/Map_features helpful as a hint as to what sort of features the renderers are likely to support.
Hope that helps - let us know if you get something working!
Cheers,
Dominic.