1

I have a slight issue I just cannot solve. I use QGIS 3.6

I have multiple layers:

  1. layer with multiple points with milage numbers;
  2. a layer containing one or more polygons (let's call them areapolygons).

I need to cut that (area) in pieces according to that milage points.

I tried the following, but that did not work:

  1. create paths from the points layer;
  2. buffering the paths, so I get polygons (let's call them milage-polygons);
  3. then clipping the milage-polygons with the areapolygons; I hope that'll give me areas of 100m.

But I got some errors.

So can anyone help me out: I made a little picture of what I need: I need a sort of 'cutting' lines on the place of the milage points, to cut the polygon.

polygons, milages and cutting lines

  • 2
    Would be helpful to know what errors. – MrXsquared Aug 10 at 23:19
  • Hi! I understand. But I was more looking for in idea for an approach for my quest. – Reinder Peterse Aug 11 at 20:17
  • If you can create lines using the geometry by expression algorithm, then you can cut the polygon using split with lines. The challenging is writing an expression to define the lines based on the points. – csk Aug 12 at 19:04
0

I created a graphical model for QGIS 3.8 to create the blue dotted "cutting" lines from your picture. Only thing you need is a point layer with an integer field called ID, where your points are sorted ascending. Of course you can (or must) adjust this model to your specific needs. As I cannot attach it here, I added it to my GitHub repository. I've done this pretty quickly, so I am sure there are better, or more efficient solutions out there. A known "bug" is, when you select a greater buffer width, than points are apart from each other, it doesnt work anymore. Maybe you can use "extend lines" algorithm or something to fix this if needed.

Since you use QGIS 3.6 the join by nearest won't work. You can check out if you can implement NNJoin plugin instead or upgrade.

Here is how it works:

  1. Input a points layer with ascending ID field (e.g. @row_number)
  2. Build a path out of the points
  3. Buffer this path (adjust your buffer width here) using miter and flat style
  4. Convert this buffer to lines
  5. Extract the vertices
  6. Join these vertices with the nearest point from 1. and get it's ID (this step requires QGIS 3.8+)
  7. Create new fields for line grouping afterwards (for extracted vertices and points from 1.) by multiplying ID with 1000
  8. Create new fields for line ordering (@row_number)
  9. Merge vertices and points from 1.
  10. Create a path from points from this merged layer
  11. Dissolve this path

enter image description here

enter image description here

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.