GIS Tools

Language

Made withfor the GIS community

GIS Intersect Tool

Find the geometric intersection of two layers

Geoprocessing

Layer 1 (Polygons)

Drop files here or click to browse

Supported formats: GeoJSON

GeoJSON

Layer 2 (Polygons)

Drop files here or click to browse

Supported formats: GeoJSON

GeoJSON

If enabled, output will contain prefixed attributes from both input layers

About Intersect

  • Returns areas where both layers overlap
  • Both input layers must contain polygons
  • Each polygon pair creates one output feature
  • Attributes can be merged with prefixes
Layer 1
Layer 2
Intersection

What Is the GIS Intersect Operation?

The GIS Intersect operation computes the geometric overlap of two vector layers and produces a new layer containing only the areas, lines, or points where both inputs coexist β€” with attributes from both source layers joined to the output. Alongside Union and Erase, Intersect is one of the three classic overlay operations taught in every GIS curriculum. Its purpose is to answer questions like "which parcels lie inside flood zones?", "which road segments cross protected forests?", or "which service areas overlap each other?". The output is both a geometry and a combined attribute record, making it the go-to tool whenever you need to know "where is A and B at the same time?".

The GIS Intersect Tool on gis.tools performs polygon intersect, line-on-polygon intersect, line-on-line intersect, and mixed-geometry intersect operations on any two vector layers, entirely in your browser. Drag two layers in, click Intersect, and get a fully joined result layer with no data upload, no account creation, and no server processing. It's the quickest way to intersect layers online without installing QGIS or setting up PostGIS.

Intersect differs from Clip in one crucial way: Clip keeps only the input layer's attributes, while Intersect carries attributes from both parents forward. Both operations produce the same geometric output; the choice between them depends on whether you need the join.

How Intersect Works

Intersect takes each feature in Layer A, checks it against every feature in Layer B using a spatial index, and emits new features wherever they spatially overlap. The new features carry attribute columns from both parents, so you can immediately filter, style, or aggregate the results by either layer's fields.

Modern implementations use spatial indexes (R-tree, STR-tree, quad-tree) to avoid comparing every A feature against every B feature β€” a naive approach that would be O(n*m) and unacceptable for real data. Once candidate pairs are identified via index, the actual geometry intersection is computed by libraries like GEOS (ST_Intersection), JTS, or the Martinez-Rueda polygon clipping algorithm implemented in polyclip-ts.

Geometry Type Combinations

Intersect works with every combination of geometry types:

  • Point on polygon yields points that fall inside (equivalent to Point in Polygon with attribute join)
  • Line on polygon yields line segments inside the polygon boundary
  • Polygon on polygon yields polygons representing overlap areas
  • Line on line yields intersection points where lines cross
  • Polygon on line yields line segments inside the polygon

Attribute Column Collision

When both layers have a field with the same name (e.g., id), most tools rename one to id_1 or id_2. The gis.tools implementation prepends a configurable suffix to disambiguate.

Key Parameters and Options

Input Layers

Two vector layers of any geometry type. The order sometimes matters for attribute precedence in the output.

Output Geometry Type

When intersecting layers of different geometry types, you may need to specify whether the output should be points, lines, or polygons. For polygon-on-polygon, the output is always polygons.

Keep All Features

Some implementations offer an option to keep non-intersecting features from one layer in the output with null attributes from the other β€” effectively a spatial left-outer-join. The classic intersect tool drops non-intersecting features.

Practical Applications

Risk and Regulatory Overlay

Intersect property parcels with FEMA flood hazard polygons to identify properties at risk and record their flood zone classification (AE, VE, X, etc.) on each parcel. Output feeds directly into disclosure letters and insurance quotes.

Environmental Impact Assessment

Cross a proposed pipeline route or transmission corridor with wetland, habitat, cultural resource, and buffer layers to produce a detailed impact report showing exactly which sensitive features each segment affects. This is the backbone of NEPA and Environmental Impact Statement analysis.

Transportation and Planning

Intersect bus route lines with census tracts to compute which demographic groups each route serves. Intersect bike lanes with employment centers to quantify commuter reach.

Retail and Market Segmentation

Intersect store catchment polygons with demographic block groups to produce customer profile reports per store, showing median income, age, and household composition within the catchment.

Insurance and Actuarial Work

Intersect building footprints with earthquake or hurricane hazard zones to compute exposure portfolios.

Public Health

Intersect disease case clusters with exposure-source buffers (polluters, brownfields, power lines) to test spatial hypotheses about environmental determinants.

Agriculture

Intersect soil type polygons with field boundaries to compute which soil profiles each field contains, feeding precision agriculture decisions.

Step-by-Step Workflow in gis.tools

  1. Open the GIS Intersect Tool
  2. Drop in your first layer (any vector type)
  3. Drop in the second layer
  4. Preview both layers overlaid on the map
  5. Click "Intersect" to compute the overlay
  6. Inspect the output β€” each feature carries attributes from both inputs
  7. Rename or drop redundant columns if needed
  8. Export the result as GeoJSON, KML, or Shapefile

Worked Example

A floodplain analyst receives a new FEMA Flood Insurance Rate Map (FIRM) polygon for a county and a parcel layer with 45,000 properties. She drops both into the intersect tool. After processing, the output has 7,842 features where each is a parcel (or partial parcel) inside a flood zone, carrying both the APN and the FLD_ZONE value (AE, VE, X, etc.). She opens the Attribute Table Exporter to produce a CSV for the notification letter system, sorted by FLD_ZONE, grouped by parcel owner.

Common Pitfalls and Gotchas

  • CRS mismatch: intersecting layers in different coordinate systems produces garbage. Check with the CRS Metadata Inspector and reproject with EPSG Reprojector & Coordinate Converter.
  • Sliver polygons: tiny artifact polygons form along near-parallel boundaries. Use Polygon Overlap Checker to identify and clean up slivers afterwards.
  • Attribute name collisions can overwrite one layer's fields. Rename before intersecting if you care.
  • Empty results usually mean CRS mismatch or non-overlapping layers.
  • Topology errors in inputs cause exceptions or partial output. Run Geometry Repair first.
  • Performance on huge datasets: an intersect of 100k polygons against 100k polygons is not instant; pre-filter by bounding box first.
  • Duplicate features in the output can arise from multipolygon inputs. Inspect and dissolve if needed.
  • Precision rounding can produce micro-gaps between adjacent polygons; use snap-rounding if topology matters.

Tips for Best Results

  • Reproject both layers to the same equal-area CRS for accurate post-intersect area measurements via the Area Calculator
  • Run Geometry Repair on both inputs to clean self-intersections
  • For one-to-many attribute carryover with no geometry cutting, prefer Spatial Join
  • Dissolve the output afterwards if you only want the combined footprint
  • Filter out sliver polygons below a minimum area threshold to clean the result

Comparison with Other GIS Approaches

In PostGIS, intersect is two functions combined: ST_Intersection(a.geom, b.geom) for geometry and a cross-table SELECT for attributes, usually accelerated by ST_Intersects + GIST index. In QGIS, it's Vector > Geoprocessing Tools > Intersection. In ArcGIS Pro, it's the Intersect tool in the Analysis toolbox, with an optimized Pairwise Intersect variant. PostGIS wins on raw scale; QGIS and ArcGIS provide rich GUIs; the browser-based gis.tools tool wins on speed-to-first-result and privacy. For a one-off intersect of manageable-sized layers, opening a browser and dragging files is faster than setting up any desktop or database environment.

Performance Considerations

Browser intersect performance depends on the feature counts of both layers and the complexity of their geometries. A spatial index on the larger layer is the single most important optimization and the tool applies one automatically. Typical times: two layers of 10,000 simple polygons intersect in a few seconds; 100,000 each may take 30-60 seconds. Very detailed polygons (millions of vertices total) can exhaust browser memory.

Data Privacy and Browser-Based Processing

Intersect runs fully client-side. Both input layers stay on your machine from the moment they are loaded until the moment you close the tab. For confidential commercial, legal, or health data this is a significant advantage over cloud-based alternatives.

Related GIS Concepts

Intersect implements the set-theoretic intersection A ∩ B for spatial data. Union (A βˆͺ B) keeps everything; Erase/Difference (A βˆ’ B) keeps only A outside B; Symmetric Difference keeps only the non-overlapping parts from both. Spatial Join attaches attributes without cutting geometry. Overlay analysis is the umbrella term for all of these operations. In the DE-9IM dimensionally extended nine-intersection model, the formal definition of "intersects" is any non-empty geometric relation between two features.

Frequently Asked Questions

What's the difference between intersect and clip?

Clip keeps only the input layer's attributes; intersect keeps attributes from both layers.

Can I intersect three or more layers?

Run intersect twice: A intersect B, then the result intersect C.

Why do I get duplicate rows in the output?

If either input has overlapping features (e.g., two buildings on one parcel), each overlap is a separate output row.

Can I intersect lines with polygons?

Yes β€” output is line segments inside the polygon.

Related Tools on gis.tools

100% client-side processing - your data stays private and never leaves your device