Skip to main content
Vecaria

GeoJSON to GeoParquet

Local

Convert GeoJSON to GeoParquet in your browser — columnar output that DuckDB and GeoPandas read directly. Free, no sign-up, nothing uploaded.

Drag files here, or click to browse

Supports GEOJSON, JSON

Choose file

Output has a single WKB geometry column named "geometry" (GeoJSON carries one geometry per feature — multi-geometry-column output is not created). ZSTD is not offered: no in-browser codec is bundled; SNAPPY/GZIP round-trip via the same reader in GeoParquet → GeoJSON.

What is it? GeoJSON to GeoParquet converts GeoJSON to GeoParquet — the columnar counterpart of GeoJSON and an OGC standard used by Overture Maps, queryable directly from DuckDB or GeoPandas. Compression is selectable (SNAPPY / GZIP / uncompressed, SNAPPY by default) and the loaded file stays in the page so switching the codec re-converts instantly. Everything runs locally in your browser — nothing is uploaded.

TL;DR: Convert GeoJSON to columnar GeoParquet (SNAPPY/GZIP/uncompressed) in your browser — nothing uploaded, free with no sign-up.

How to use

  1. Drop a .geojson (or .json) file — conversion starts automatically (there is no convert button); the file stays in the page.
  2. The <original-name>.parquet file downloads automatically when conversion finishes; the result area reports the codec, feature count and size.
  3. Switch the compression selector (SNAPPY / GZIP / Uncompressed) to re-convert the loaded file without dropping it again.

FAQ

Why GeoParquet?

Columnar storage compresses well and speeds up large-scale analytics; DuckDB and GeoPandas can query the output directly.

Why no ZSTD?

This tool runs fully in your browser and no in-browser ZSTD codec is bundled (no new dependencies are added) — writable codecs are SNAPPY (default), GZIP (via pako, symmetric with the reader in GeoParquet → GeoJSON) and uncompressed. Recompress ZSTD files as SNAPPY with GDAL/ogr2ogr or gpq first.

Is it local?

Yes.

GeoParquet or GeoPackage — which one do I need?

Different tools for different jobs. GeoParquet is columnar (Apache Parquet + geo metadata) built for analytics — DuckDB and GeoPandas query it directly; GeoPackage is an SQLite container that desktop GIS edits well. Pick GeoParquet for storage and analysis of large layers, GeoPackage for interchange in QGIS-centric workflows — this page writes GeoParquet, and the GeoJSON to GeoPackage tool covers the container.

How big can my GeoJSON be?

There is no upload limit because nothing is uploaded — the real bound is your device's memory, since parsing, typing and writing the Parquet all run in the browser. The result area reports the feature count and output size so you can confirm before downloading.

What happens to my property columns?

They are typed by inspection: integers, doubles, booleans, strings and nested objects/arrays (stored as JSON text) all map to Parquet columns. A column whose values mix types, or an integer column exceeding the 32-bit range (e.g. OSM node ids), is rejected with a named, actionable error instead of being silently mangled.

Do I still need ogr2ogr or the gpq CLI?

Not for this direction — dropping a file here produces a standards-compliant .parquet with the geo metadata, no install required. Keep the CLI for ZSTD recompression, scripted batches or server-side pipelines.

Examples

  • Drop in a .geojson → download a .parquet (SNAPPY/GZIP/uncompressed selectable, result area reports codec + feature count + size)

Supported formats

GeoJSONGeoParquet

Limitations

  • Property columns are typed: mixed-type columns and integers beyond the 32-bit range (e.g. OSM node ids) are rejected with a named, actionable error; nested object/array values are stored as JSON text.
  • Output has a single WKB geometry column named "geometry" — GeoJSON carries one geometry per feature, so no multi-geometry-column output is created; binary properties are not applicable to GeoJSON input (complex values go to JSON text).
  • Geometry is WKB with the standard geo metadata; compression is SNAPPY (default), GZIP or none — ZSTD is not offered (no in-browser codec).
  • Very large layers are bounded by browser memory.

Privacy

Privacy first: this tool runs entirely in your browser — your input and files never leave your device, and everything is cleared when you close the page.