4

I am trying to edit bus routes in QGIS. Multiple bus routes can run on the same street.

When I want to change one bus route, I select one of them, then I enable editing mode. With the Node tool, I then edit or delete a node.

The problem is that this change is not applied to the bus route I had selected originally.

How can I make sure that I edit a specific bus route if multiple routes use the same street?

  • 2
    Could you try explaining again what you mean? – Simbamangu Feb 18 '14 at 14:59
  • Ok, I edited the question to better explain. – csf Feb 18 '14 at 17:20
  • I tried to clarify your question. Please check if I understood you correctly. – underdark Feb 18 '14 at 19:44
  • Understanding you correct: on the one hand you have a vector layer containing your streets and on the other hand there are your bus routes, stored as features in another vector layer? More than one routes are overlapping, so you aren't able to select the right one? In your question you have to indicate exactly what kind of data you are using and how you organize them! Besides you can filter your layer to have only one distinct linestring for editing. Right click on your vector layer > Filter and fill out the expression box. – Stefan Feb 18 '14 at 20:13
2

Strangely enough editing in QGIS is not limited to your selected feature as you have discovered! The node tool will tend to select the top-most line in the rendering order. So, you have two options to be sure you are editing the right feature:

  1. Find a portion of your bus route that allows you to clearly identify the correct line and then (with editing enabled for the layer) use the node tool and click on a node for the line. This effectively selects only the desired line for editing - all the rest will be unaffected.
  2. If all the lines are exactly coincident, then you need to bring the correct line to the top. In the style tab of the properties dialog, set the rendering style to categorised based on a unique ID and then go Advance->Symbol Levels. A dialog box will appear. Identify your line and set the render order (all zero by default) to 1 for the line you want). This will bring your line to the top. Make sure you have no nodes selected (just red X's visible and no red boxes) and now click on your bus route and it should be the line you have just brought to the top.

Option 2 sounds fiddly, but actually, once you have your style by category set, it is not really much more fiddly than selecting from the attributes table.

1

Bus routes usually have a unique line number as reference. This should be stored in the attribute table of your bus layer.

If your data model contains several variants with the same line number, you have to look up the unique id of the vector layer as displayed in the attribute table.

With that unique value, you can set a filter on the vector layer showing only that linestring:

Rightclick on the layer -> Filter. Choose the id or line number in the left column, click on = and enter the unique number in single quotes

You can now easily edit this line, save the changes, and delet the filter to see all line again.

  • If there are no unique IDs available for filtering the vector layer, there is the idea adding them with the field calculator. Start editing > field calculator > new column > paste $rownum in the expression box – Stefan Feb 19 '14 at 9:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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