Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I want to create an image of an OpenStreetMap map suitable for printing on A4 at 300dpi.

The map needs to have half a dozen markers/points, and each should be labeled with the name of the point.

I know the name, latitude and longitude of each point.

How can I create such a map in QGIS? Ideally it will also include the OSM credits along an edge. QGIS isn't an absolute requirement: any other free/open source tool, website or script is fine; first choice for Mac, second choice Windows.

share|improve this question
2  
What have you already tried? What have you already looked at? What worked? What didn't work for you yet, and what do you still need help on? There are a lot of good QGIS link at wiki.openstreetmap.org/wiki/QGIS. Also, qgis.spatialthoughts.com/2012/06/… might be worth a look. –  BradHards Apr 19 '13 at 6:08
    
@BradHards: I found a solution and have added it as an answer. However it's not reliable and the results are not great so there may be a better method. –  Hugo Apr 19 '13 at 8:16
    
Have you thought about using OSM Static Map API - here is a wizard version to give you in insight to the usefulness staticmap.openstreetmap.de/wizzard –  Mapperz Apr 19 '13 at 13:46
    
@Mapperz: Thanks, I tried that but the max size was 1024x1024 and A4 at 300dpi is more like 2480x3507. I'm going to try and do it with the Python version of Modest Maps instead. –  Hugo Apr 19 '13 at 14:51
    
staticmap.openstreetmap.de/… works - you need to tweak it for you purpose. –  Mapperz Apr 19 '13 at 15:26

2 Answers 2

I've managed to get something working, but it's not as good as I hoped and there may be a better way.

Add OSM

First I added the OpenLayers plugin and selected Plugins -> OpenLayers Plugin -> Add OpenStreetMap layer.

Import points

Next I created a CSV of my points like this:

LATITUDE,LONGITUDE,NAME
20.201389,14.965278,Name1
20.187278,14.97020,Name2

Then I imported it following these instructions, but with a comma delimiter, then zoomed and panned as needed.

Labels

Then in the layers panel I selected my points layer, I selected Layer -> Labelling, ticked "Label this layer with" and selected "NAME".

Print

Next I followed these instructions, starting from "click on the ‘New Print Composer’ button", adding just the things I needed and changing to portrait. I then exported as image and saved as PNG.

Results

This gave me a correctly sized (2480x3507) PNG. However, I found that often it would export an image with some white tiles. More often it would export with my points in the wrong places on the map. After retrying and restarting many times, I finally got an image with a complete OSM background and the points in the correct places. I still need to test a printout, but I think the OSM background is much more pixelated when compared with the smooth markers and labels, so perhaps there's a better way of doing it.

share|improve this answer
1  
This is almost the same problem as i have been having. I think the problem here is that it is not printing to an exact scale. If you have any other data for the area or can caculate the distance between the points remove the OSM layer or only have the point layer added then print at a scale and measure. the scales are different. gis.stackexchange.com/questions/58401/… see this. –  Gerald Apr 19 '13 at 8:20
    
@GeraldO'Reilly: I think you're onto something. It seems the OSM layer is scaled for the computer screen only, and not for print page. // After adding the map to Print Composer, the map's width and height in Item Properties are something like 208x296. If I change this to 2480x3507, the map is then some 140 times bigger than the page. How to scale it? Or how else to add an OSM background? –  Hugo Apr 19 '13 at 8:37
1  
What i have done to get by in the past is to create numerous geotiffs of the area i want (i was primarily using the bing aerial maps). I did this by the option of save as image and selecting tiff. then uploading the tiffs into the project. they print nearer to scale but not quite there. at 1:2000 they were out by some 6m. –  Gerald Apr 19 '13 at 8:53

See my comment in your answer. If you are not worried about scale but worried about having it presented in a "presentable" manner. Just before you print click on the map with the select tool and then refresh the map. Print to pdf rather than directly.

This has been an issue i have had for a long time.

Also ensure you have the "enable on the fly projection" option selected in project properties. this should re-project the project to match the osm as the point layer is probably in a different CRS.

in summary i think it is issues with the CRS and scales which cause the issue.

I hope this is clear....seeing as i don't really have an ultimate answer.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.