GeoJSON_README
文章目录
GeoJSON_README
GeoJSON
1 引子
2 基本要素
GeoJSON
1 引子
GeoJSON 是用 JSON 的语法表达和存储地理数据,可以说是 JSON 的子集。
图片数据参考:http://geojson.io
下面是一个点数据。
{
"type": "FeatureCollection",
"features": [
{"type":"Feature",
"properties":{},
"geometry":{
"type":"Point",
"coordinates":[105.380859375,31.57853542647338]
}
}
]
}
1
2
3
4
5
6
7
8
9
10
11
12
在这里插入图片描述
2 基本要素
地理要素分为Point(点)、MultiPoint(多点)、LineString(线)、MultiLineString(多线)、Polygon(面)、MultiPolygon(多面)、GeometryCollection(几何集合)。
这些地理要素被规划到geometry特征的type属性下。
并且不同的type会有不同的coordinates值。
"geometry":{
"type":"Point",
"coordinates":[105.380859375,31.57853542647338]
}
1
2
3
4
Point(点)
点要素是最简单的,类型type对应Point,然后坐标是一个1维的数组,里面有两个元素(如果是立体的坐标就是三维x,y,z),分别为经度和纬度。
coordinates的值是一个点。
"geometry":{
"type":"Point",
"coordinates":[105.380859375,31.57853542647338]
}
1
2
3
4
在这里插入图片描述
MultiPoint(多点)
多点,坐标数目变多。
coordinates的值是多个点。
"geometry":{
"type":"MultiPoint",
"coordinates":[[105.380859375,31.57853542647338],
[105.580859375,31.52853542647338]
]
}
1
2
3
4
5
6
在这里插入图片描述
LineString(线)
线要素就是指线段,记录的是线的端点坐标,可视化时会按照记录顺序联结。
对于曲线(如贝塞尔曲线)目前还没有很好的表达,但是在地理数据中,曲线一般会用LineString去拟合,现实地理世界中也没有标准的曲线地理要素。
线要素的坐标coordinates里的二维数组和多点要素基本一样,区别就在type上了。
coordinates的值是多个点,类似MultiPoint(多点)。
"geometry":{
"type":"LineString",
"coordinates":[[105.6005859375,30.65681556429287],
[107.95166015624999,31.98944183792288],
[109.3798828125,30.031055426540206],
[107.7978515625,29.935895213372444]]
} // 依次连接点
1
2
3
4
5
6
7
在这里插入图片描述
MultiLineString(多线)
好似一个三维数组,一条线连完,连下一条线。
"geometry":{
"type":"MultiLineString",
"coordinates":
[
[
[105.6005859375,30.65681556429287],
[107.95166015624999,31.98944183792288],
[109.3798828125,30.031055426540206],
[107.7978515625,29.935895213372444]
], //一条线,注意开始点和结束点不一样。
[
[109.3798828125,30.031055426540206],
[107.1978515625,31.235895213372444]
] //第二条线
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
在这里插入图片描述
Polygon(面)
一个无孔单面。
"geometry":{
"type": "Polygon",
"coordinates": [
[
[100.0, 0.0],
[101.0, 0.0],
[101.0, 1.0],
[100.0, 1.0],
[100.0, 0.0]
] // 这层括号可能就是为了突出此为面,首尾点相同
] // 注意里面多了一层括号,区别于线
}
1
2
3
4
5
6
7
8
9
10
11
12
在这里插入图片描述
一个有孔单面。
这个数组的第一个元素表示的是外部环。其他后续的元素表示的内部环(或者孔)。
"geometry":{
"type": "Polygon",
"coordinates": [
[
[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.8, 0.2],
[100.8, 0.8],
[100.2, 0.8],
[100.2, 0.2]
] // 这层括号可能就是为了突出此为面,首尾点相同
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
在这里插入图片描述
MultiPolygon(多面)
两个不会相交的面。
"geometry": {
"type": "MultiPolygon",
"coordinates":
[
[
[
[109.2041015625,30.088107753367257],
[115.02685546875,30.088107753367257],
[115.02685546875,32.7872745269555],
[109.2041015625,32.7872745269555],
[109.2041015625,30.088107753367257]
] // 这层括号可能就是为了突出此为面,首尾点相同
], // 注意里面多了一层括号,区别于线
[
[
[112.9833984375,26.82407078047018],
[116.69677734375,26.82407078047018],
[116.69677734375,29.036960648558267],
[112.9833984375,29.036960648558267],
[112.9833984375,26.82407078047018]
] // 这层括号可能就是为了突出此为面,首尾点相同
] // 注意里面多了一层括号,区别于线
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
在这里插入图片描述
两个镶套的面。
小的面表示在前,大的面表示在后,效果不是有洞的。
"geometry": {
"type": "MultiPolygon",
"coordinates":
[
[
[
[101.6455078125,27.68352808378776],
[114.78515624999999,27.68352808378776],
[114.78515624999999,35.209721645221386],
[101.6455078125,35.209721645221386],
[101.6455078125,27.68352808378776]
]
], // 小的面在前
[
[
[104.2822265625,30.107117887092357],
[108.896484375,30.107117887092357],
[108.896484375,33.76088200086917],
[104.2822265625,33.76088200086917],
[104.2822265625,30.107117887092357]
]
] // 大的面在后
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
在这里插入图片描述
有孔洞的多面。
注意层级不太一样。
"geometry": {
"type": "MultiPolygon",
"coordinates":
[
[
[
[101.6455078125,27.68352808378776],
[114.78515624999999,27.68352808378776],
[114.78515624999999,35.209721645221386],
[101.6455078125,35.209721645221386],
[101.6455078125,27.68352808378776]
], // 一个外部环
[
[104.2822265625,30.107117887092357],
[108.896484375,30.107117887092357],
[108.896484375,33.76088200086917],
[104.2822265625,33.76088200086917],
[104.2822265625,30.107117887092357]
] // 一个内部环
] // 一个有孔的单面
] // 因为是多个有孔的蛋面组成的集合,所以这里多了一个层级。
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
在这里插入图片描述
GeometryCollection(几何集合)
GeometryCollection是多种基本地理要素的集合,就是里面可以包含点、线、面要素。
这个是个特殊的要素,不需要放在FeatureCollection里。
{
"type": "GeometryCollection",
"geometries": [
{
"type": "Point",
"coordinates": [108.62, 31.02819]
},
{
"type": "LineString",
"coordinates": [[108.896484375,30.1071178870],
[108.2184375,30.91717870],
[109.5184375,31.2175780]]
}
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
在这里插入图片描述
原文地址:https://blog.csdn.net/Richard__Ting/article/details/99319860