GeoJSON: formát geodat v JSON (RFC 7946)

GeoJSON je JSON formát geografických geometrií a prvků. RFC 7946 používá zeměpisné souřadnice WGS 84 v pořadí délka, šířka.

Autor: Aktualizováno

Bod a vlastnosti

Feature spojuje geometrii s vlastnostmi. První souřadnice je longitude, druhá latitude; nezaměň je podle pořadí z mapového formuláře.

Bod a vlastnosti
{"type":"Feature","geometry":{"type":"Point","coordinates":[14.4208,50.0880]},"properties":{"nazev":"Praha"}}

Další geometrie

LineString obsahuje alespoň dvě pozice. Polygon má seznam prstenců; každý prstenec má nejméně čtyři pozice a první a poslední jsou stejné. FeatureCollection ukládá features do pole. Nadmořská výška může být třetí souřadnicí.

Další geometrie
{"type":"FeatureCollection","features":[]}

Kompatibilita

RFC 7946 nepoužívá starý člen crs pro volbu jiného souřadnicového systému. Projektované metry nejdřív transformuj. MIME typ je application/geo+json. Antimeridián a orientace prstenců vyžadují pozornost při interoperabilitě.

Co validovat

JSON validátor zkontroluje pouze syntaxi. Geografická validace musí navíc řešit typ geometrie, délky polí, uzavření prstenců a požadavky cílové mapové knihovny. Převod z GPX/KML může ztratit časové údaje nebo stylování.

FeatureCollection s trasou a polygonem

mapa.geojson — dvě geometrie v jedné kolekci
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "id": "trasa",
      "geometry": {
        "type": "LineString",
        "coordinates": [
          [
            14.42,
            50.08
          ],
          [
            14.43,
            50.09
          ]
        ]
      },
      "properties": {
        "nazev": "Ukázková trasa"
      }
    },
    {
      "type": "Feature",
      "id": "oblast",
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              14.42,
              50.08
            ],
            [
              14.43,
              50.08
            ],
            [
              14.43,
              50.09
            ],
            [
              14.42,
              50.09
            ],
            [
              14.42,
              50.08
            ]
          ]
        ]
      },
      "properties": {}
    }
  ]
}

Feature je záznam s geometrií a properties; id může být string nebo číslo. LineString propojuje pozice v uvedeném pořadí. Polygon je pole prstenců: první hranice, další díry. Prstenec je pole pozic, nikoli pole samotných čísel, a končí stejnou pozicí, kterou začal. Ukázková hranice je orientovaná proti směru hodinových ručiček.

GeometryCollection sdružuje geometrie v poli geometries, nikoli Feature v poli features. MultiPoint, MultiLineString a MultiPolygon přidávají další úroveň polí podle typu. Feature může mít geometry null, pokud poloha není známá; není to totéž jako bod [0,0]. Properties může být objekt nebo null. JSON pořadí klíčů nemění význam, pořadí souřadnic ano.

Jak ověřit geometrii a odhalit záměnu souřadnic

  1. Ověř JSON syntax a hodnotu type.
  2. Pro bod kontroluj dvě či tři číselné souřadnice, pro linii alespoň dvě pozice a pro polygon uzavření každého prstence.
  3. Porovnej polohu se známým místem. Záměna [50.08,14.42] může být číselně přípustná, ale zobrazí jiné místo.
  4. Otevři data v cílovém GIS/mapovém prostředí a zkontroluj obálku, návaznost trasy a hranice.

Odebrání poslední pozice polygonu v příkladu poruší uzavření. Obyčejný JSON validátor to nezjistí, protože pole je syntakticky platné. Strukturální schéma může ověřit části tvaru, geografický validátor či aplikace navíc topologii a shodu první/poslední pozice.

Souřadnice RFC 7946 jsou zeměpisná délka a šířka v desetinných stupních; nepřenášej sem bez transformace souřadnice v metrech. Výška je navázaná na definovaný výškový model, ne automaticky výška nad terénem. Obdélník ohraničující oblast (bounding box) má předepsané pořadí souřadnic. Při překročení poledníku 180° (antimeridiánu) platí zvláštní pravidla. Přesný popis: GeoJSON RFC 7946; XML protějšky jsou v GPX/KML.