{ "$schema": "http://json-schema.org/draft-04/schema#", "id": "geometry.json#", "title": "geometry", "description": "One geometry as defined by GeoJSON", "type": "object", "required": ["type", "coordinates"], "oneOf": [ { "title": "Point", "properties": { "type": { "enum": ["Point"] }, "coordinates": { "$ref": "#/definitions/position" } } }, { "title": "MultiPoint", "properties": { "type": { "enum": ["MultiPoint"] }, "coordinates": { "$ref": "#/definitions/positionArray" } } }, { "title": "LineString", "properties": { "type": { "enum": ["LineString"] }, "coordinates": { "$ref": "#/definitions/lineString" } } }, { "title": "MultiLineString", "properties": { "type": { "enum": ["MultiLineString"] }, "coordinates": { "type": "array", "items": { "$ref": "#/definitions/lineString" } } } }, { "title": "Polygon", "properties": { "type": { "enum": ["Polygon"] }, "coordinates": { "$ref": "#/definitions/polygon" } } }, { "title": "MultiPolygon", "properties": { "type": { "enum": ["MultiPolygon"] }, "coordinates": { "type": "array", "items": { "$ref": "#/definitions/polygon" } } } } ], "definitions": { "position": { "title": "position", "description": "A single position", "type": "array", "minItems": 2, "items": { "type": "number" } , "additionalItems": false }, "positionArray": { "title": "positionArray", "description": "An array of positions", "type": "array", "items": { "$ref": "#/definitions/position" } }, "lineString": { "title": "lineString", "description": "An array of two or more positions", "allOf": [ { "$ref": "#/definitions/positionArray" }, { "title": "minimum 2", "minItems": 2 } ] }, "linearRing": { "description": "An array of four positions where the first equals the last", "allOf": [ { "$ref": "#/definitions/positionArray" }, { "title": "minimum 4", "minItems": 4 } ] }, "polygon": { "description": "An array of linear rings", "type": "array", "items": { "$ref": "#/definitions/linearRing" } } } }