Finding Intersection Points for Lines Without Existing Vertices in QGIS
In spatial analysis, you often encounter "spaghetti" vector data—lines that visually cross each other but lack a physical node or vertex at the point of intersection. For tasks like network analysis or point-of-interest generation, these "floating" intersections are invisible to standard selection tools. Because QGIS treats lines as a series of connected vertices, it won't automatically recognize a crossing point unless a node is explicitly placed there. This tutorial demonstrates how to programmatically identify these geometric overlaps and extract them as a new point layer without manually digitizing every crossing.
Table of Content
- Purpose of Topological Intersection Extraction
- Common Use Cases
- Step by Step: Generating Intersection Points
- Best Results for Geometric Accuracy
- FAQ
- Disclaimer
Purpose
The primary goal is to convert Implicit Topology into Explicit Geometry. By identifying where lines cross mathematically rather than relying on existing nodes, we can generate a discrete point dataset that represents these junctions. This process is essential for cleaning up legacy CAD drawings imported into GIS and for preparing line datasets for routing algorithms that require specific "junction" nodes to move between segments.
Use Case
Finding "non-vertex" intersections is critical for:
- Utility Mapping: Identifying where underground pipes or cables cross each other to assess potential interference.
- Hydrology: Locating stream junctions in datasets where the segments were digitized as continuous polylines rather than broken at every confluence.
- Transportation Planning: Generating road junctions from simple line strings to create a routable network graph.
- Conflict Analysis: Finding where property boundaries or zoning lines overlap in legal mapping.
Step by Step
1. Prepare Your Layer
Ensure your line layer is in a Projected Coordinate Reference System (CRS). Calculations in degrees (WGS 84) can sometimes cause precision issues with floating-point intersections. Use a local UTM zone for the most accurate placement.
2. Run the "Line Intersections" Tool
QGIS has a built-in algorithm designed specifically for this task that works even when layers are the same.
- Open the Processing Toolbox (Ctrl+Alt+T).
- Search for and open the Line Intersections tool.
- Set both the "Input layer" and the "Intersect layer" to your specific shapefile.
- (Optional) Select specific attributes to keep from both lines involved in the crossing.
- Click Run. QGIS will generate a temporary "Intersections" point layer.
3. Clean Up Duplicate Points
Because the tool checks Line A against Line B and then Line B against Line A, you may end up with two points at the exact same coordinate for every crossing.
- In the Processing Toolbox, search for Delete Duplicate Geometries.
- Run this on your new Intersection layer to ensure you have a clean, single-point dataset.
4. Alternative: The "Nodes" Method
If you need the lines to be physically "split" at these points (creating a vertex):
- Run the Split Lines at Intersections tool.
- Follow this with the Extract Vertices tool, filtering for only those that act as start/end points of the newly split segments.
Best Results
| Technique | Outcome | Reliability |
|---|---|---|
| Line Intersections Tool | Quickest point generation | High |
| GRASS v.clean (break) | Corrects topology while splitting | Professional Grade |
| Manual Snapping | Human-verified placement | Low (Time intensive) |
FAQ
Why did the tool miss some intersections?
This is usually due to Z-value Mismatches or Precision Issues. If your lines have 3D data and cross at different elevations, some tools will not register them as an intersection. Additionally, if the lines miss each other by a fraction of a millimeter (a "dangle"), the tool will ignore them. Use the Snap Geometries to Layer tool first to close tiny gaps.
Can I find where a line intersects itself?
The "Line Intersections" tool typically looks for intersections between different features. To find self-intersections (loops), use the Check Validity tool; it will output a point layer marking every location where a line crosses its own path.
Does this work on curved lines?
In GIS, most "curves" are actually many tiny straight segments. QGIS will find the intersection between these segments. If you are using true circular strings (rare in shapefiles), ensure you are using a version of QGIS (3.20+) that supports curved geometry types.
Disclaimer
Geometric intersection tools can be resource-intensive on datasets with over 100,000 segments. Ensure your "Self-Intersection" checks are handled carefully to avoid exponential processing times. This tutorial is based on QGIS 3.x standards as of 2026. Always verify the spatial integrity of your data using the Topology Checker plugin after performing automated geometry generation.
Tags: QGIS, VectorAnalysis, Topology, GISWorkflow
