For quite some time now, N American maps have been freely available to the public. This has generally not been the case in Europe, but things are gradually changing, and many national/regional topo-maps are now freely available on Web Mapping Servers (WMS). Few people know how to use these however, so here's an attempt to describe how you can fetch sections of map, called 'tiles' in the jargon. It's intended as a brief introduction so is simplified; search the web for 'WMS' for more info (probably more than you want).
Note that these maps are generally still subject to copyright. Though generally speaking it's ok to download small quantities for your own personal use, you should check with the copyright owner on conditions of use for any major or commercial usage.
I'm afraid that the WMS standard produces some very long urls, but fortunately they all follow the same pattern, so you only have to change bits of the urls to determine the server and the area covered.
Spain
I'll start off with the IGN topo maps on the IDEE server. Here's the url for a map tile from this server:
http://www.idee.es/wms/MTN-Raster/MTN-Raster?LAYERS=mtn_rasterizado&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&EXCEPTIONS=application/vnd.ogc.se_inimage&FORMAT=image/jpeg&SRS=EPSG:23030&BBOX=168000,4736000,169000,4737000&WIDTH=400&HEIGHT=400
Click on that and, assuming the server isn't down, you should see a map image of O Cebreiro in Galicia.
The url looks pretty daunting, so let's split it into the different bits:
- everything before the '?' is the server address, so http://www.idee.es/wms/MTN-Raster/MTN-Raster? is the one for the MTN rasters of Spain
- after the '?' come a series of parameters in the format key=value separated by '&', so first we see 'LAYERS=mtn_rasterizado' which tells the server which layers, i.e. which map types, we want
- next come a series of standard WMS parameters which are similar for all servers &SERVICE=WMS& VERSION=1.1.1&REQUEST=GetMap&EXCEPTIONS=application/vnd.ogc.se_inimage&FORMAT=image/jpeg including lastly which type of image we want, in this case a JPEG file
- next comes the projection 'SRS=EPSG:23030'. Which projections are available depends on the server; different countries use different projections. Generally, WGS84 EPSG:4326 is available, but this is in geographical coordinates (latitude and longitude) so you would have to calculate which area you want in fractions of a degree. More readily understandable is a metre projection, in this example EPSG:23030, one of the UTM projections used in Spain
- next is the bbox parameter: BBOX=168000,4736000,169000,4737000 which is the geographical area covered, so in this case we want 168000-169000 on the x axis, and 4736000-4737000 on the y axis. As this is metres this means we want an image representing a 1km square. The coordinates depend on the projection, the 'origin' (0,0) being part of the projection definition
- the final parameters are the size of the image in pixels 'WIDTH=400&HEIGHT=400'
So, if you want to show a different place, you change the values in the BBOX parameter. To change the size of the image, you alter the width and height. Obviously, changing both BBOX and width/height in the same proportion will keep the same scale; changing one and not the other will alter the scale accordingly. Some servers have a maximum size image you can download, and you will get an error if you try and fetch a larger one.
Try various changes and see what you get. It's pretty straightforward, really. The main difficulty is knowing what coordinates you want; you can go to my map viewer program, zoom to the place you want, and the cursor position is shown in both geo coordinates and in UTM.
Germany
Now here's a url for a map tile of Bad Wilsnack from the German digital landscape server:
http://www.gis5.nrw.de/cgi-bin/dlm_50?LAYERS=dlm_50&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&EXCEPTIONS=application/vnd.ogc.se_inimage&FORMAT=image/jpeg&SRS=EPSG:31467&BBOX=3696500,5872500,3698500,5874500&WIDTH=400&HEIGHT=400
Much the same pattern as with Spain, except the projection here is EPSG:31476.
Italy
And here's a url for a map tile of Bobbio from the Italian IGM maps:
http://wms.pcn.minambiente.it/cgi-bin/mapserv.exe?map=/ms_ogc/service/igm25.map&LAYERS=igm25&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&EXCEPTIONS=application/vnd.ogc.se_inimage&FORMAT=image/jpeg&SRS=EPSG:4326&BBOX=9.380,44.760,9.400,44.780&WIDTH=400&HEIGHT=400
In this case, the server only offers EPSG:4326, so the BBOX coordinates are in fractions of a degree rather than in metres - probably easier for positioning as more people are aware of geo coordinates than of metre-based projections, though the scale is more complicated to calculate.
Catalonia
And finally, here's Montserrat on the Catalonian ICC servers, also in EPSG:4326:
http://shagrat.icc.es/lizardtech/iserv/ows?LAYERS=mtc50m&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&EXCEPTIONS=application/vnd.ogc.se_xml&FORMAT=image/jpeg&SRS=EPSG:4326&BBOX=1.82500,41.586000,1.84500,41.606000&WIDTH=400&HEIGHT=400
Other countries
The OS in Britain and the IGN in France also use WMS servers for their topo maps, but you have to have a special api key to access them, so tiles cannot be fetched with a simple http request.
Have fun :-)