GIS · GeoJSON

GeoJSON Splitter

Split a GeoJSON FeatureCollection into multiple files — by property value, geometry type, or fixed feature count. Preview, copy, or download each chunk.

Input GeoJSON
or drag & drop a .geojson file
Split Options
Split mode
Output
All processing happens in your browser · no data sent to any server

What This Tool Does

Three ways to divide a GeoJSON FeatureCollection into focused, smaller files.

🏷️
Split by property
Pick any property key — country, category, type, etc. — and get one FeatureCollection per unique value. Null/missing values go into a (null) file.
📐
Split by geometry type
Separate Points from LineStrings from Polygons and all Multi-variants. Ideal for mixed FeatureCollections from KML, Shapefile, or API responses that combine multiple geometry types.
✂️
Split by feature count
Set a chunk size (e.g. 500) and get sequential Part 1, Part 2 … files of equal size. The last chunk may be smaller. Useful for API pagination or tool memory limits.
👁️
Inline preview
Every output chunk shows a 800-character JSON preview inline so you can verify content before downloading. Collapse chunks you don't need to reduce clutter.
📦
Download all at once
Click "Download all" to trigger sequential downloads of every chunk as a separate .geojson file. Filenames are derived from the split value or part number.
🔒
100% client-side
All parsing and splitting runs in your browser. No data leaves your device. Works with files of any size your browser can handle — typically hundreds of MB.

How to Use

1
Load your GeoJSON
Paste GeoJSON text into the input box, click Upload to open a .geojson or .json file, or drag-and-drop a file onto the input area. Click "Load sample" for a 10-city European dataset with country and type properties.
2
Choose a split mode
Select "By Property Value" and pick a property key from the dropdown. Or select "By Geometry Type" for automatic type detection. Or select "By Feature Count" and enter the number of features per chunk.
3
Click Split GeoJSON
The output section appears with one card per chunk. Each card shows the chunk label (e.g. "country=France"), feature count, and a JSON preview. Stats at the top show total output files and features.
4
Download
Click "Download all" to get every chunk as a separate .geojson file. Or use the individual Download button on each chunk card. Copy buttons copy the chunk JSON to clipboard. Collapse unused chunks with the ▲ button.

Logic Behind the Tool

How each split mode works under the hood.

Split by property
Iterates all features once, reading feature.properties[key]. Values are coerced to strings and used as Map keys. Missing/null values map to the literal string '(null)'. The original feature objects are placed directly into the group arrays — no deep clone is performed since output chunks are immediately serialised.
Split by geometry type
Reads feature.geometry?.type. If geometry is null or missing, the feature goes into the 'Unknown' group. All seven standard GeoJSON geometry types are supported. The output filenames are lowercased geometry type names — e.g. point.geojson, linestring.geojson.
Split by feature count
Uses Array.slice(i, i + n) to take sequential windows of the feature array. The last window is whatever remains, which may be smaller than n. Feature order within each chunk is preserved. No sorting or reordering is applied.
Input normalisation
Any FeatureCollection, single Feature, or bare geometry is accepted. Bare geometries are wrapped in a Feature with empty properties. Property keys are scanned from all features on load to populate the property dropdown. A key that appears in only some features will still appear in the dropdown.

Frequently Asked Questions

Features where the split property is absent or set to null are grouped together into a file labelled (null). The file is named with the literal string — for example, if splitting by country, you will get country_(null).geojson. This ensures no features are silently dropped from the output.

Yes. Use "Split by Geometry Type". This is the most common scenario when importing data from KML, older Shapefiles, or API responses. The tool will produce one file per geometry type present. For example, a file with 200 Points and 50 Polygons produces point.geojson (200 features) and polygon.geojson (50 features).

Some APIs and tools have a maximum number of features per request or file. For example, the Mapbox Datasets API has a 10,000-feature limit per tileset source. The Overture Maps API paginates results. If you have a 50,000-feature file and an API that accepts 5,000 at a time, split into chunks of 5,000 and upload each chunk separately.

Safari may block multiple sequential programmatic downloads triggered by a button click because they are not directly tied to a user gesture on each individual download. If Download all is blocked, use the individual Download button on each chunk card instead. Chrome and Firefox handle multiple sequential downloads reliably.

GeoJSON Splitter takes one FeatureCollection and divides it into multiple smaller FeatureCollections. GeoJSON Merger takes multiple FeatureCollections and combines them into one. They are complementary — use Splitter to partition a large dataset for layer-based styling or API upload, and use Merger to combine separate tile layers into a single dataset for analysis.

Related Tools

View all →

Related Reading