Térbeli adatok leírása GeoJSON-nal

Befejeződött

A GeoJSON egy internetszabványú térinformatikai adatformátum, amely JavaScript Object Notation (JSON) alapú. Ha rétegeket szeretne hozzáadni egy térképvezérlőhöz, meg kell határoznia egy GeoJSON-adatokat tartalmazó adatforrást. A térképvezérlő az adatokat használva helyek alapján hoz létre átfedéseket. Egy GeoJSON-adatforrás használatával például meghatározhatja a funkciók elhelyezését egy buborékrétegben a térképen.

Megjegyzés:

A GeoJSON az Internet Engineering Task Force (IETF) RFC 7946 szabványaként van definiálva.

GeoJSON-objektumok

A GeoJSON formátum három objektumot határoz meg:

  • Geometria
  • Funkció
  • Jellemzőgyűjtemény

Geometria

A geometria egy térbeli régió. A geometria lehet:

  • Hosszúság és szélesség által meghatározott egyetlen pont.
  • Több pont, amely egy vonalat ír le.
  • Több pont, amelyek egy sokszög körvonalát írják le.
  • Több geometria gyűjteménye.

A geometria GeoJSON-objektumainak két tulajdonsága van:

  • type: Megadja a geometria típusát, például egy Point vagy egy Polygon.
  • coordinates: Koordinátákat tartalmaz hosszúsági és szélességi értékekként egy kételemes tömbben. Az első elem a hosszúság, a második pedig a szélesség. A pontok egyetlen értékkel rendelkeznek egy tömbben. A sorok és a sokszögek több értékkel rendelkeznek egy tömbben. Sokszögek esetén az alakzatnak zártnak kell lennie, így az utolsó koordinátának meg kell egyeznie az első koordinátával.

Íme egy példa geometriai objektum, amely egyetlen pontot tartalmaz a Microsoft washingtoni redmondi központjában:

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

Íme egy példa a Párizs környéki négyzetek sokszögére, Franciaországban:

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

Ennek a négyzetnek öt koordinátája van: négy sarok és az utolsó koordináta, amely megegyezik az első koordinátával, a négyzet bezárásához.

Funkció

A szolgáltatás egy térbelileg határolt entitás. Tehát ez egy geometria, amely olyan tulajdonságokkal rendelkezik, amelyek leírják, hogy mi található az adott helyen. A tulajdonságok lehetnek adatok, például helynév vagy hőmérséklet.

A GeoJSON-objektum három tulajdonsággal rendelkezik:

  • type: Megadja az objektum típusát, és mindig Feature egy funkcióhoz tartozik.
  • geometry: GeoJSON geometriai objektum, amely meghatározza a funkció helyét.
  • properties: Bármely érvényes GeoJSON-objektum, és meghatározza a funkció tulajdonságait.

Íme egy példa funkció Párizs, Franciaország:

{
    "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
    }
}

Jellemzőgyűjtemény

A funkciógyűjtemények, ahogy a neve is sugallja, funkciók gyűjteménye.

Egy szolgáltatásgyűjtemény GeoJSON-objektumának két tulajdonsága van:

  • type: Megadja az objektum típusát, és mindig FeatureCollection egy funkciógyűjteményhez tartozik.
  • features: GeoJSON-funkcióobjektumok tömbje.

Íme egy példa egy funkciógyűjteményre két európai városban:

{
    "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
            }
        }
    ]
}

Ebben a leckében megismerkedett a térbeli adatok tárolására használt GeoJSON formátummal és annak három objektumtípusával. Ezután egy API-val lekérheti a levegőminőségi adatokat, GeoJSON-ra konvertálhatja az adatokat, majd megjelenítheti az adatokat egy térképen.