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
