GeoJSON是一種對各種地理數據結構進行編碼的格式,基於Javascript對象表示法的地理空間信息數據交換格式。GeoJSON對象可以表示幾何、特徵或者特徵集合。GeoJSON支持下面幾何類型:點、線、面、多點、多線、多面和幾何集合。GeoJSON里的特徵包含一個幾何對象和其他屬性,特徵集合表示一系列特徵。
一個完整的GeoJSON數據結構總是一個(JSON術語裡的)對象。在GeoJSON里,對象由名/值對--也稱作成員的集合組成。對每個成員來說,名字總是字元串。成員的值要么是字元串、數字、對象、數組,要么是下面文本常量中的一個:"true","false"和"null"。數組是由值是上面所說的元素組成。
GeoJSON總是由一個單獨的對象組成。這個對象(指的是下面的GeoJSON對象)表示幾何、特徵或者特徵集合。
- GeoJSON對象可能有任何數目成員(名/值對)。
- GeoJSON對象必須有一個名字為"type"的成員。這個成員的值是由GeoJSON對象的類型所確定的字元串。
- type成員的值必須是下面之一:"Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon", "GeometryCollection", "Feature", 或者 "FeatureCollection"。
- GeoJSON對象可能有一個可選的"crs"成員,它的值必須是一個坐標參考系統的對象。
- GeoJSON對象可能有一個"bbox"成員,它的值必須是邊界框數組。
GeoJSON特徵集合:{ "type": "FeatureCollection", "features": [{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [102.0, 0.5] }, "properties": { "prop0": "value0" } }, { "type": "Feature", "geometry": { "type": "LineString", "coordinates": [[102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]] }, "properties": { "prop0": "value0", "prop1": 0.0 } }, { "type": "Feature", "geometry": { "type": "Polygon", "coordinates": [[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]] }, "properties": { "prop0": "value0", "prop1": { "this": "that" } } } ]}