摘要
geoJSON 是一种基于JSON的地理空间格式。它定义了数种JSON对象以及他们的组合方式来描述地理空间的属性,空间幅度。它使用的坐标系统是WGS1984小数点坐标系。
介绍
GeoJSON是一种用JSON格式定义各种各样空间数据结构的格式。一个GeoJSON对象可能被用来描述一个空间范围(Geometry),或者是一个有限的空间实体(Feature),或者是有限空间实体的集合(FeatureCollection)。GeoJSON支持以下数据类型:
- Point
- LineString
- Polygon
- Multiport
- MultiLineString
- MultiPolygon
- GeometryCollection
这种格式广义上来说就是一种地理空间数据。凡是具有地理空间特性的,不管它是否是真实的物体都可以算作一种Feachture。GeoJSON 并不是新东西,这套标准来源于现有的开放地理信息系统标准,并且已经简化,使得其更适合用户web应用程序的开发。
GeoJSON包含7种定义在SFSQL(OpenGIS Simple Features Implementation Specification)的地理类型(如上)。
GeoJSON同样支持Featrue 和 FeatureCollection类型。Feature类型是包含一个上述其中7种类型的地理空间对象和额外的成员。而FeatureCollection 则是Feature类型的数组。自2008年首次发布以来[GJ2008], GeoJSON格式规范在流行中稳步增长。它广泛应用于JavaScript web映射库、基于json的文档数据库和web api。
一个Feature 的例子
{
"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"
}
}
}]
}
Point
Point 包含一组描述地理位置的坐标。(经纬度,x,y坐标或者东/北投影)
{
"type": "Point",
"coordinates": [100.0, 0.0]
}
LineString
由一组Point描述的路径
{
"type": "LineString",
"coordinates": [
[100.0, 0.0],
[101.0, 1.0]
]
}
Polygon
由一组Point描述的封闭空间。其起点必须和终点重合。
//No holes:
{
"type": "Polygon",
"coordinates": [
[
[100.0, 0.0],
[101.0, 0.0],
[101.0, 1.0],
[100.0, 1.0],
[100.0, 0.0]
]
]
}
//With holes: 类似于一个环
{
"type": "Polygon",
"coordinates": [
[
[100.0, 0.0],
[101.0, 0.0],
[101.0, 1.0],
[100.0, 1.0],
[100.0, 0.0]
],
[
[100.8, 0.8],
[100.8, 0.2],
[100.2, 0.2],
[100.2, 0.8],
[100.8, 0.8]
]
]
}
MultiPoint
{
"type": "MultiPoint",
"coordinates": [
[100.0, 0.0],
[101.0, 1.0]
]
}
MultiLineString
{
"type": "MultiLineString",
"coordinates": [
[
[100.0, 0.0],
[101.0, 1.0]
],
[
[102.0, 2.0],
[103.0, 3.0]
]
]
}
MultiPolygon
{
"type": "MultiPolygon",
"coordinates": [
[
[
[102.0, 2.0],
[103.0, 2.0],
[103.0, 3.0],
[102.0, 3.0],
[102.0, 2.0]
]
],
[
[
[100.0, 0.0],
[101.0, 0.0],
[101.0, 1.0],
[100.0, 1.0],
[100.0, 0.0]
],
[
[100.2, 0.2],
[100.2, 0.8],
[100.8, 0.8],
[100.8, 0.2],
[100.2, 0.2]
]
]
]
}
GeometryCollection
eometryCollection的“geometries”数组中的每个元素都是上述其中一种几何对象
{
"type": "GeometryCollection",
"geometries": [{
"type": "Point",
"coordinates": [100.0, 0.0]
}, {
"type": "LineString",
"coordinates": [
[101.0, 0.0],
[102.0, 1.0]
]
}]
}
在线生成
原文