使用 GeoJSON 描述空間資料

已完成

GeoJSON 是以 JavaScript 物件標記法 (JSON) 為基礎的網際網路標準地理空間資料格式。 若要將圖層新增至地圖控制項,您需要定義包含 GeoJSON 資料的資料來源。 地圖控制項會使用資料,根據位置建立重疊。 例如,您可以使用 GeoJSON 資料來源,定義地圖上泡泡圖層中的特徵位置。

注意

GeoJSON 定義為網際網路工程任務推動小組 (IETF) RFC 7946 \(英文\) 中的標準。

GeoJSON 物件

GeoJSON 格式會定義三個物件:

  • 幾何
  • 功能
  • 功能集合

幾何

「幾何」是空間中的一個區域。 幾何可以是:

  • 由經度和緯度定義的單一點。
  • 描述線條的多個點。
  • 描述多邊形外框的多個點。
  • 多個幾何的集合。

幾何 GeoJSON 物件有兩個屬性:

  • type:指定幾何的類型,例如 PointPolygon
  • coordinates:包含座標作為兩個項目陣列中的經度和緯度值。 第一個項目是經度,第二個項目是緯度。 點在陣列中具有單一值。 線條和多邊形在陣列中具有多個值。 多邊形必須是封閉圖形,所以,最後一個座標必須和第一個座標相同。

下列幾何物件範例包含位於美國華盛頓州雷德蒙德的 Microsoft 總部的單一點:

{
    "type": "Point",
    "coordinates": [-122.136866, 47.642472]
}

下列多邊形範例是法國巴黎附近的正方形:

{
    "type": "Polygon",
    "coordinates": [
        [
            [2.2580337524414062, 48.81251594581751],
            [2.4262619018554688, 48.81251594581751],
            [2.4262619018554688, 48.90377176147872],
            [2.2580337524414062, 48.90377176147872],
            [2.2580337524414062, 48.81251594581751]
        ]
    ]
}

此正方形有五個座標:四個角落及最後一個座標,後者需與第一個座標相同,才能形成正方形。

功能

「特徵」是空間界限的實體。 因此,其是具有一組屬性的幾何,可描述該位置中的內容。 屬性可以是地點名稱或溫度之類的資料。

特徵 GeoJSON 物件有三個屬性:

  • type:指定物件類型,且特徵一律為 Feature
  • geometry:GeoJSON 幾何物件,可定義特徵的位置。
  • properties:任何有效的 GeoJSON 物件,其會定義特徵的屬性。

以下是法國巴黎的範例特徵:

{
    "type": "Feature",
    "geometry": {
        "type": "Polygon",
        "coordinates": [
            [
                [2.2580337524414062, 48.81251594581751],
                [2.4262619018554688, 48.81251594581751],
                [2.4262619018554688, 48.90377176147872],
                [2.2580337524414062, 48.90377176147872],
                [2.2580337524414062, 48.81251594581751]
            ]
        ]
    },
    "properties": {
        "city_name": "Paris",
        "population": 2148271
    }
}

功能集合

「特徵集合」,如其名所示,是特徵的集合。

特徵集合 GeoJSON 物件有兩個屬性:

  • type:指定物件類型,且特徵集合一律為 FeatureCollection
  • features:GeoJSON 特徵物件的陣列。

以下是兩個歐洲城市的特徵集合範例:

{
    "type": "FeatureCollection",
    "features": [{
            "type": "Feature",
            "geometry": {
                "type": "Polygon",
                "coordinates": [
                    [
                        [2.2580337524414062, 48.81251594581751],
                        [2.4262619018554688, 48.81251594581751],
                        [2.4262619018554688, 48.90377176147872],
                        [2.2580337524414062, 48.90377176147872],
                        [2.2580337524414062, 48.81251594581751]
                    ]
                ]
            },
            "properties": {
                "city_name": "Paris",
                "population": 2148271
            }
        },
        {
            "type": "Feature",
            "geometry": {
                "type": "Polygon",
                "coordinates": [
                    [
                        [-0.5287170410156249, 51.26019611626714],
                        [0.26641845703125, 51.26019611626714],
                        [0.26641845703125, 51.70916142932303],
                        [-0.5287170410156249, 51.70916142932303],
                        [-0.5287170410156249, 51.26019611626714]
                    ]
                ]
            },
            "properties": {
                "city_name": "London",
                "population": 8908081
            }
        }
    ]
}

在此單元中,您已了解用來儲存空間資料及其三個物件類型的 GeoJSON 格式。 接下來,您使用 API 來取得空氣品質資料、將資料轉換為 GeoJSON,然後在地圖上顯示資料。