Accuracy & edge cases
What the validator and fixer actually do in code—and what they will not invent. Use this before treating output as authoritative for legal, engineering, or topology-critical work.
GeoJSON Cloud is optimized for common web-mapping cleanup, not cadastral topology certification. When in doubt, re-check results in QGIS or another full GIS.
Validation & repair rules
Implemented in lib/geojson-validation.ts and exposed by the validator and fixer tools.
| Rule | Behavior | Auto-fixable |
|---|---|---|
| Root type | Accepts FeatureCollection or Feature. A bare Geometry is not accepted by the validator root check until normalized; converters may wrap Geometry into a Feature. | Yes |
| Feature entries | FeatureCollection entries must be Features. Invalid entries are reported as errors and are not auto-fixed. | No |
| Missing geometry | Features with no geometry produce a warning. Repair drops features without geometry rather than inventing coordinates. | No |
| Coordinate finiteness | Coordinates must be nested arrays of finite numbers. Non-numeric structures are errors. | No |
| WGS 84 bounds | Positions outside longitude −180…180 or latitude −90…90 are warnings. They are not automatically reprojected. | No |
| Polygon ring length | Rings need at least four positions (including a closing position). Shorter rings are errors and are not invented. | No |
| Unclosed polygon rings | If the first and last positions differ, the validator reports an error. Repair closes the ring by appending a copy of the first position. | Yes |
| Feature → FeatureCollection | A root Feature is normalized into a one-feature FeatureCollection during validate/repair flows. | Yes |
Polygon rings & winding
Repair closes rings by duplicating the first position onto the end when open. It does not reverse ring winding to enforce RFC exterior/interior orientation, does not remove spikes, and does not resolve self-intersections. Editor drawing may normalize rings for map display; that is separate from the document-level fixer.
Encoding & Shapefiles
- KML import strips a leading UTF-8 BOM when present before XML parse.
- Shapefile attributes depend on the DBF and the browser-side shpjs stack. Corrupt archives, unusual code pages, or missing .shx/.dbf parts can fail or drop attributes.
- Multi-layer ZIPs are best-effort: prefer one logical layer per archive for predictable FeatureCollections.
- Projection files (.prj) are not a guarantee of automatic coordinate transformation on import. Use the reproject tool when you know the source CRS.
Intentionally not supported
- Full topology validation (self-intersections, bowties, coverage topology)
- Automatic CRS detection from every vendor file without user-supplied source CRS
- KML NetworkLinks, photo overlays, tours, and full style fidelity
- CAD formats (DWG/DXF), FileGDB, GeoPackage, and enterprise geodatabases
- Server-side processing of guest tool files (those run in the browser)
- Mapshaper-scale simplification / dissolve / clipping pipelines
- Guaranteed multi-layer Shapefile semantics for every zip layout
- Encoding miracles for corrupt or unknown code pages in DBF files
For large simplification, dissolve, or topology jobs, see when Mapshaper or desktop GIS is better.
