[GIS] How to represent distance using the dashes or markers of a vector line

distancemarkersshapefile

I am a very basic user and dont know the lingo to get to the gist of my question so some background might help.

Ive volunteered to create a pre-incident planning system for my rural fire department. Our primary vulnerability are extremely long un-mapped driveways.

So far Ive successfully transferred GPS data of the driveways over aerial photography of the district as bright green lines(a .SHP layer) with a label showing the length of each driveway. It looks great and is very useful as is.

Now the question: I want to draw the driveway vector lines as dashes or with markers set at 100-foot lengths. Our supply-line hoses come in 100-foot lengths; A vector line defined with markers at 100-foot intervals would save me a lot of time and improve the data immeasurably.

So far I have tried "Single Symbol" as a "Simple Line" using a customized dash pattern and the "Marker Line" using the interval placement. Neither of these options maintain the proper length while zooming or "scaling" (if that's the term).

Perhaps it is impossible? (at least at my level of knowledge. I taught myself this far and dont have a lot more time for fooling around :))

Best Answer

As QGIS also has Simple and Marker Line I will answer from a QGIS point of view. Like Stephen said using the marker lines won't really give you want you need - although that would make a good feature request - which I have just opened.

You best bet at the moment to generate points along the line. I have outlined how you can do this in QGIS on my blog at Generating chainage (distance) nodes in QGIS

Luckly one of the guys on the project has taken my logic and made it into a plugin at https://github.com/mach0/qchainage.

To install the plugin

  • Click the ZIP button on the https://github.com/mach0/qchainage or follow this link
  • Extract the zip file into {yourusername}\.qgis\python\plugins\. You should now have a qchainage-master folder in your plugins folder.
  • Open QGIS and enable QChainage in the Plugin Manager
  • Open your line layer
  • Select the menu item Plugins->QChainage->Create Chainage
  • Fill in the options

    qchainage options

    I'm using 10 meters here. Distance is in map units.

  • Click OK

  • Profit...

    result

This will create a new point layer in memory if you would like to save it out Right Click the new point layer and select Save As...