GeoJSON詳解(帶圖)


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM