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.

Is there a way to tie line width to map scale in QGIS? All I found was an outside limit for display as the scale decreases. I'm using an outline line style for roads, and the roads are too big when I zoom out. What about converting them to a raster layer?

share|improve this question
add comment

2 Answers 2

I think your data is fine, the problem is you added it into a project that uses degrees as map unit (as nhopton said and your string showed that it is EPSG:4326). You can fix this by starting a new project with CRS that use meter as map unit and add your data into this project, all your line width number will now be understood by QGIS as in meter unit.

You can start a new project with CRS that use meter as map unit by going to menu File -> New Project, then Settings -> Project Properties, go to CRS tab and select the suitable CRS. I usually use Google Mercator - EPSG:900913 or EPSG:3857 - your need may vary.

enter image description here

share|improve this answer
    
How do I set my project CRS to CA State Plane Zone 1, UTM Zone 10, or Albers Equal Area projection coordinates, NAD27 Units Feet? These are the specs for the data I've downloaded from the Humboldt County GIS portal. There are several "California Albers" choices in the QGIS Project Properties dialog box, but they're all in meters. –  Gray Shaw Nov 13 '12 at 1:10
    
@Gray Shaw: I am a new user in GIS with an electric background, so I cannot answer all of your questions. My advice for you: if you can find EPSG code for your projection, enter the number in the "filter" box and Qgis will find it for you, if you don't know the EPSG code, you can start a new question here in Gis.StackExchange and other people may help you. Best regards. –  Cao Minh Tu Nov 14 '12 at 4:00
    
thanks, but where is the "filter" box? I'm looking in the Project Properties dialog and I don't see it. –  Gray Shaw Nov 19 '12 at 6:27
    
@Gray Shaw: added a screen shot in the above answer. You can enter EPSG code (Eg. 3857) or some words and qgis will filter results for you. For California Albers with feet as unit, I think you can look for a ready-made EPSG projection or create your own - this is out of my knowledge, you'll have to start a new question to ask for this. –  Cao Minh Tu Nov 19 '12 at 9:42
    
My version of QGIS (1.7.4) has no Filter box, but it does have a Find box, which does the same thing, as I just discovered. No trouble finding EPSG:2870, and I'm on my way! Thanks! –  Gray Shaw Nov 19 '12 at 14:38
show 1 more comment

The quick way of tying line width to scale would be to use map units for the lines. You get this option when picking a style for the lines, set 'Unit' to 'Map unit' rather than the default 'Millimeter'.

I've had to add this to the answer because it's too long for a comment! The mechanics of transforming a shapefile in one CRS and exporting it to a new shapefile having a different CRS are fairly simple. Load the shapefile into QGIS, right-click on it in the layers panel and select 'Properties', then click the 'General' tab and make sure that QGIS has correctly recognised its CRS. If it hasn't, then set the CRS yourself (the 'Specify CRS' button). Next, right-click on the layer in the layers panel and select 'Save as..'. In the dialog box that pops-up set 'Format' as 'ESRI Shapefile' and give the new file a name. Set 'CRS' to 'Selected CRS' then press the 'Browse' button and pick a suitable CRS. This is fine if you know which CRS to choose. If you don't, come back with some details of the geographical area that your map will cover and someone will suggest a couple of possibilities. Nick.

share|improve this answer
    
Thanks nhopton, but changing my line to 'map units' results in a huge circle, even after reducing width to 0.01 and changing to a simple line style. What am I not understanding? –  Gray Shaw Apr 11 '12 at 13:00
1  
Hum, yes. It sounds as if you might be using a geographic (lat/lon) CRS where the 'map units' are degrees. I think you'll need to project your data to a CRS that uses metres. Do you know how to do this? –  nhopton Apr 11 '12 at 15:16
    
I am still a 'white belt' at this, and I would appreciate direction. My project CRS is +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +towgs84=0,0,0 –  Gray Shaw Apr 11 '12 at 22:15
    
This opens up a host of questions in my novice mind. All my layers are EPSG:4326/WGS 84. One is about 50x20 miles (Humboldt County, CA, roads). I created a line style of 2.26 mm, which displays well at 1:1000 but not at 1:7500; these are the two scales I would use most. I'm only mapping about 1000 acres, but sometimes it would be nice to show the context. Which CRS would tie the line width of roads to the scale in my map window? Do I need to use the same CRS throughout the project? Do map units pertain to a project or individual layers? Of course I could crop the roads layer. Thanks! –  Gray Shaw Apr 18 '12 at 4:53
    
EPSG:4326 is the gold standard for the exchange of GIS data but for most QGIS mapping purposes it isn't of much use. California has several state plane CRSs and I would project all of the layers in the project to one of these. For Homboldt County, CA, you could use EPSG:2766 if you want to work in metres or EPSG:2870 if you prefer the map units to be feet. Yes, use the same CRS for all of the layers in the project. Nick. –  nhopton Apr 18 '12 at 9:03
show 1 more comment

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.