1

I wanna create a sign or symbol or anything to inform the map reader that the intersecting line is not connected to other line, eventhough they have same colour.

Here is an image of my work.

example

I am using QGIS 3.12

1
  • You could add a pointsymbol to every start-/endpoint and node? Thus all intersections without points are not connected.
    – Erik
    Commented Apr 29, 2020 at 9:25

2 Answers 2

3

In QGIS I can suggest using a "Virtual Layer" through Layer > Add Layer > Add/Edit Virtual Layer....

Let's assume we have two layers "paths_1" (red) and "paths_2" (blue) with its corresponding attribute tables accordingly, see image below.

input

With the following query, it is possible to create a sign or symbol or anything to inform the map reader that the intersecting line is not connected to other line.

-- generate series
WITH RECURSIVE generate_sections(point_id) AS (
SELECT conf.start
FROM conf
UNION
SELECT point_id + conf.step
FROM generate_sections, conf
WHERE point_id + conf.step < numgeom
),
-- configurations
conf AS (
SELECT ST_NumGeometries(st_intersection(st_union(p1.geometry),st_union(p2.geometry))) AS numgeom,
0 AS start,
1 AS step
FROM paths_1 AS p1, paths_2 AS p2
)

SELECT point_id + 1 AS id, ST_GeometryN(st_intersection(p1.geometry,p2.geometry), point_id + conf.step) AS geom
FROM generate_sections, "paths_1" AS p1, "paths_2" AS p2, conf
WHERE geom IS NOT NULL

The output Virtual Layer with its Attribute table will look as following

output


References:

1

If the lines are part of the same layer, you can try to solve your issue using a different symbology.

Creating a double line symbol with a different thickness you can create this symbol that shows which line in overlapping the other. enter image description here

If you want to control the behaviour of the lines symbology, deciding which line are going to be on top of the other, you can use the tool Control feature rendering order and, using an expression, you can organise the order of the lines according to a field attribute (e.g. a field in your table that manages the order of the lines. In the example I am using the id).

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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