一、介绍
GeoJson是一种对各种地理数据结构进行编码的格式。支持点、线、面、多点、多线、多面和几何集合。
GeoJSON里的特征包含一个几何对象和其他属性,特征集合表示一系列特征。
- 例子:
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"}
}
}
]
}
2.GeoJSON对象
总是由一个单独的对象组成。
对象可能有任何数目成员(名/值对)。
对象必须由一个名字为"type"的成员。这个成员的值是由GeoJSON对象的类型所确定的字符串。
成员的值必须是下面之一:"Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon", "GeometryCollection", "Feature", 或者 "FeatureCollection"。
几何对象
当type的值是:"Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon", 或者"GeometryCollection"时,GeoJSON就是几何对象。
除"GeometryCollection"之外,其他几何对象都要有"coordinates"属性,它的值是一个数组,表示坐标集合。
位置(coordinates)
点(type: "Point"):“coordinates"的值必须是一个单独的位置。
多点(type: "MultiPoint"): “coordinates"的值必须是一个位置数组。
线(type: "LineString"): “coordinates"的值必须是两个或者多个位置的数组。
多线(type: "MultiLineString"): “coordinates"的值必须是线坐标数组的数组。
面(type: "Polygon"): “coordinates"的值必须是线性环坐标数组的数组。
多面(type: "MultiPlygon"): “coordinates"的值必须是面坐标数组的数组。
几何集合(type: "GeometryCollection"):
类型为"GeometryCollection"的GeoJSON对象是一个集合对象,它表示几何对象的集合。
几何集合必须有一个名字为"geometries"的成员。与"geometries"相对应的值是一个数组。这个数组中的每个元素都是一个GeoJSON几何对象。
特征对象(type:"Feature")
特征对象必须由一个名字为"geometry"的成员,这个几何成员的值是上面定义的几何对象或者JSON的null值。
特征对戏那个必须有一个名字为“properties"的成员,这个属性成员的值是一个对象(任何JSON对象或者JSON的null值)。
如果特征是常用的标识符,那么这个标识符应当包含名字为“id”的特征对象成员。
特征集合对象(type:"FeatureCollection")
类型为"FeatureCollection"的对象必须由一个名字为"features"的成员。与“features"相对应的值是一个数组。这个数组中的每个元素都是上面定义的特征对象。
生活是痛苦的白天,死亡是凉爽的夜晚。