Skip to content

Appending GeoJSON features combines files; deduplication decides whether two records represent the same observation or entity. Treat these as separate operations and retain the original inputs.

Define identity before merging

For OSM, use element type plus ID. For other sources, include the provider or dataset namespace with the source ID. Identical numeric IDs from different sources are not sufficient evidence of duplication.

Choose a target schema and CRS. Record each input's source, version, checksum and field mapping. Preserve geometry and attributes that conflict instead of letting input order silently decide which value survives.

Resolve a duplicate explicitly

An exact identity match can be resolved by a documented version or source-priority rule. Retain links to every contributing record. A proximity or name match is a candidate for review; nearby facilities can be distinct, and names can repeat.

Produce three outputs: retained features, duplicate relationships, and unresolved conflicts. Report input count, output count, dropped exact duplicates and unresolved candidates. Reconcile those counts before publication.

Minimal append

This appends two compatible collections without claiming to deduplicate them:

jq -s '{type:"FeatureCollection", features:map(.features) | add}' \
  first.geojson second.geojson > appended.geojson

Run identity checks after appending. Geometry equality alone can change with vertex order, coordinate precision or ring orientation; record the comparison method.

GeoJSON specification · OSM normalization