A GeoJSON text is a JSON text holding one
GeoJSON object. This page follows
RFC 7946 (2016), read
2026-11-12. The media type is application/geo+json.
Object types
Every GeoJSON object has a type member, one of these nine
case-sensitive strings:
type | Required members | Meaning |
|---|---|---|
Point | coordinates: a position | One point. |
MultiPoint | coordinates: an array of positions | Several points. |
LineString | coordinates: an array of 2 or more positions | A line through the positions. |
MultiLineString | coordinates: an array of LineString coordinate arrays | Several lines. |
Polygon | coordinates: an array of linear rings | The first ring is the outside; any others are holes. |
MultiPolygon | coordinates: an array of Polygon coordinate arrays | Several polygons. |
GeometryCollection | geometries: an array of geometry objects | Mixed geometries. Nesting should be avoided, and so should collections of one part or one type where a multi-type would do. |
Feature | geometry (a geometry or null), properties (an object or null) | A thing with a shape and attributes. |
FeatureCollection | features: an array of Feature objects | A set of features. |
Processors may treat a geometry with an empty coordinates array as a
null object.
Positions
- A position is an array of numbers: longitude, latitude, and optionally altitude in metres above or below the WGS 84 ellipsoid. Implementations should not extend positions beyond three elements.
- The coordinate reference system is always WGS 84 (OGC CRS84) in decimal degrees.
The 2008 specification’s
crsmember is no longer used; another system may be used only by prior arrangement between the parties. - Precision: the RFC notes that six decimal places amount to about 10 centimetres.
- A linear ring is a closed LineString of four or more positions; the first and last positions must hold identical values, and should also be written identically.
- Rings follow the right-hand rule: outer rings counter-clockwise, holes clockwise. Readers should not reject polygons that do not follow it, because the 2008 specification did not require it.
- Lines and rings that cross the antimeridian (180° longitude) should be cut in two there, so that no line wraps the long way round the Earth.
Other members
| Member | On | Meaning |
|---|---|---|
bbox | Any object | Bounding box: all minimums for each axis, then all maximums, such as [west, south, east, north] or with altitudes. Across the antimeridian, west is greater than east. |
id | Feature | An identifier, a string or a number. |
| Foreign members | Any object | Members the RFC does not define, such as title. Allowed, but their meaning is up to the reader; a foreign member named coordinates or geometry does not make an object a geometry or feature. |
The defining members must not appear on the wrong objects: Features and
FeatureCollections must not have coordinates or
geometries; FeatureCollections and geometries must not have
geometry or properties; Features and geometries must not
have features.
Changes from the 2008 specification
Appendix B of RFC 7946 lists the changes from the 2008 GeoJSON specification,
among them that the crs member is no longer used. Appendix C notes that
streams of GeoJSON texts can use JSON text sequences (RFC 7464), which are outside
the RFC’s scope.
Example
{
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"id": 1,
"geometry": { "type": "Point", "coordinates": [-0.1276, 51.5072] },
"properties": { "name": "London" }
}]
}