How the Diff Works
Our diffing tool allows you to compare two geospatial files (GeoJSON, GPKG, etc.) to quickly identify changes between them. The engine operates feature-by-feature, not pixel or geometry precision, so it detects whether an entire feature is present in the other file or not.
What the tool calculates
- Added features: Features that exist in the "after" file but not in the "before" file.
- Removed features: Features that exist in the "before" file but not in the "after" file.
- Unchanged features: Features that exist in both files exactly (geometry matches).
- Feature area: Computed in square meters for polygons/multipolygons.
- Feature length: Computed for lines and multilines.
- Point/MultiPoint features: Count only, visualized as added/removed/unchanged.
Supported Geometry Types
| Geometry Type | What’s Calculated |
|---|---|
| Point | Count, visual highlight |
| MultiPoint | Count, visual highlight |
| LineString | Count, Length, visual highlight |
| MultiLineString | Count, Length, visual highlight |
| Polygon | Count, Area, visual highlight |
| MultiPolygon | Count, Area, visual highlight |
| GeometryCollection | Skipped in stats/display due to complexity |
How the Diffing Engine Works
- The engine takes two geospatial files: Before and After.
- It compares each feature in the "Before" file against the "After" file by exact geometry.
- If a feature exists in "After" but not "Before", it is marked Added.
- If a feature exists in "Before" but not "After", it is marked Removed.
- If a feature exists in both files with identical geometry, it is marked Unchanged.
- Areas (for polygons) and lengths (for lines) are computed in projected coordinates for accuracy.
- The engine ignores attributes/properties—any differences in metadata do not affect the diff.
Notes & Warnings
- Large files (hundreds of MBs or GBs) may take a few seconds to process.
- GeometryCollections are skipped and will not appear in counts or visualization.
- The engine is feature-based, not geometry difference-based. Partial overlaps are not split.