GeoJSON Splitter
Split a GeoJSON FeatureCollection into multiple files — by property value, geometry type, or fixed feature count. Preview, copy, or download each chunk.
What This Tool Does
Three ways to divide a GeoJSON FeatureCollection into focused, smaller files.
country, category, type, etc. — and get one FeatureCollection per unique value. Null/missing values go into a (null) file.How to Use
Logic Behind the Tool
How each split mode works under the hood.
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.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.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.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.