GeoJSON - GeoJSON

GeoJSON
Extensii de nume de fișier .json, .geojson
Tipul media internet application/geo+json
Tipul formatului Format fișier GIS
Extins de la JSON
Standard RFC  7946
Formatul deschis ? da
Site-ul web geojson .org

GeoJSON este un format standard deschis conceput pentru a reprezenta caracteristici geografice simple , împreună cu atributele lor nespaciale . Se bazează pe formatul JSON .

Caracteristicile includ puncte (deci adrese și locații), șiruri de linii (deci străzi, autostrăzi și limite), poligoane (țări, provincii, zone de teren) și colecții de mai multe părți de acest tip. Caracteristicile GeoJSON nu trebuie să reprezinte doar entități ale lumii fizice; aplicațiile de rutare și navigare mobile, de exemplu, ar putea descrie acoperirea serviciilor lor folosind GeoJSON.

Formatul GeoJSON diferă de alte standarde GIS prin faptul că a fost scris și este menținut nu de o organizație formală de standarde, ci de un grup de lucru pe internet de dezvoltatori.

O descendență notabilă a GeoJSON este TopoJSON , o extensie a GeoJSON care codifică topologia geospațială și care oferă de obicei dimensiuni mai mici de fișiere.

Istorie

Grupul de lucru și discuțiile despre formatul GeoJSON au început în martie 2007, iar specificația formatului a fost finalizată în iunie 2008.

În aprilie 2015, Internet Engineering Task Force a fondat grupul de lucru Geographic JSON care a lansat GeoJSON sub denumirea de RFC 7946 în august 2016.

Exemplu

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [102.0, 0.5]
      },
      "properties": {
        "prop0": "value0"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "LineString",
        "coordinates": [
          [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]
        ]
      },
      "properties": {
        "prop0": "value0",
        "prop1": 0.0
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
            [100.0, 1.0], [100.0, 0.0]
          ]
        ]
      },
      "properties": {
        "prop0": "value0",
        "prop1": { "this": "that" }
      }
    }
  ]
}

Geometrii

Punctele sunt [x, y] sau [x, y, z]. Acestea pot fi [longitudine, latitudine] sau [est, nord]. Cota este un al treilea număr opțional. Sunt numere zecimale.

De exemplu, Londra (51.5074 ° Nord, 0.1278 ° Vest) este [-0.1278, 51.5074]

Primitive de geometrie
Tip Exemple
Punct SFA Point.svg
{
    "type": "Point", 
    "coordinates": [30.0, 10.0]
}
LineString SFA LineString.svg
{
    "type": "LineString", 
    "coordinates": [
        [30.0, 10.0], [10.0, 30.0], [40.0, 40.0]
    ]
}
Poligon SFA Polygon.svg
{
    "type": "Polygon", 
    "coordinates": [
        [[30.0, 10.0], [40.0, 40.0], [20.0, 40.0], [10.0, 20.0], [30.0, 10.0]]
    ]
}
SFA Poligon cu gaură.svg
{
    "type": "Polygon", 
    "coordinates": [
        [[35.0, 10.0], [45.0, 45.0], [15.0, 40.0], [10.0, 20.0], [35.0, 10.0]], 
        [[20.0, 30.0], [35.0, 35.0], [30.0, 20.0], [20.0, 30.0]]
    ]
}
Geometrii cu mai multe părți
Tip Exemple
MultiPoint SFA MultiPoint.svg
{
    "type": "MultiPoint", 
    "coordinates": [
        [10.0, 40.0], [40.0, 30.0], [20.0, 20.0], [30.0, 10.0]
    ]
}
MultiLineString SFA MultiLineString.svg
{
    "type": "MultiLineString", 
    "coordinates": [
        [[10.0, 10.0], [20.0, 20.0], [10.0, 40.0]], 
        [[40.0, 40.0], [30.0, 30.0], [40.0, 20.0], [30.0, 10.0]]
    ]
}
MultiPolygon SFA MultiPolygon.svg
{
    "type": "MultiPolygon", 
    "coordinates": [
        [
            [[30.0, 20.0], [45.0, 40.0], [10.0, 40.0], [30.0, 20.0]]
        ], 
        [
            [[15.0, 5.0], [40.0, 10.0], [10.0, 20.0], [5.0, 10.0], [15.0, 5.0]]
        ]
    ]
}
SFA MultiPolygon with hole.svg
{
    "type": "MultiPolygon", 
    "coordinates": [
        [
            [[40.0, 40.0], [20.0, 45.0], [45.0, 30.0], [40.0, 40.0]]
        ], 
        [
            [[20.0, 35.0], [10.0, 30.0], [10.0, 10.0], [30.0, 5.0], [45.0, 20.0], [20.0, 35.0]], 
            [[30.0, 20.0], [20.0, 15.0], [20.0, 25.0], [30.0, 20.0]]
        ]
    ]
}
GeometryCollection SFA GeometryCollection.svg
{
    "type": "GeometryCollection",
    "geometries": [
        {
            "type": "Point",
            "coordinates": [40.0, 10.0]
        },
        {
            "type": "LineString",
            "coordinates": [
                [10.0, 10.0], [20.0, 20.0], [10.0, 40.0]
            ]
        },
        {
            "type": "Polygon",
            "coordinates": [
                [[40.0, 40.0], [20.0, 45.0], [45.0, 30.0], [40.0, 40.0]]
            ]
        }
    ]
}

TopoJSON

TopoJSON este o extensie a GeoJSON care codifică topologia . În loc să reprezinte discret geometriile, geometriile din fișierele TopoJSON sunt cusute împreună din segmente de linie partajate numite arce . Arcurile sunt secvențe de puncte, în timp ce șirurile de linii și poligoanele sunt definite ca secvențe de arcuri. Fiecare arc este definit o singură dată, dar poate fi referit de mai multe ori prin diferite forme, reducând astfel redundanța și scăzând dimensiunea fișierului. În plus, TopoJSON facilitează aplicațiile care utilizează topologie, cum ar fi simplificarea formei de conservare a topologiei, colorarea automată a hărților și cartograme .

O implementare de referință a specificației TopoJSON este disponibilă ca instrument de linie de comandă pentru a codifica TopoJSON din GeoJSON (sau ESRI Shapefiles) și o bibliotecă JavaScript partea clientului pentru a decoda TopoJSON din nou în GeoJSON. TopoJSON este, de asemenea, acceptat de instrumentul popular OGR începând cu versiunea 1.11 și PostGIS începând cu versiunea 2.1.0.

Schema TopoJSON

Având o formă GIS aproape de coordonatele latitudine 0 ° și longitudine 0 °, un fișier topojson simplu, dar valid și complet care conține toate metadatele, poligonul , linia , elementele punctelor , arcurile și proprietățile este definit după cum urmează:

Image
Forme Topojson
{
  "type":"Topology",
  "transform":{
    "scale": [1,1],
    "translate": [0,0]
  },
  "objects":{ 
    "two-squares":{
      "type": "GeometryCollection",
      "geometries":[
        {"type": "Polygon", "arcs":[[0,1]],"properties": {"name": "Left_Polygon" }},
        {"type": "Polygon", "arcs":[[2,-1]],"properties": {"name": "Right_Polygon" }}
      ]
    },
    "one-line": {
      "type":"GeometryCollection",
      "geometries":[
        {"type": "LineString", "arcs": [3],"properties":{"name":"Under_LineString"}}
      ]
    },
    "two-places":{
      "type":"GeometryCollection",
      "geometries":[
        {"type":"Point","coordinates":[0,0],"properties":{"name":"Origine_Point"}},
        {"type":"Point","coordinates":[0,-1],"properties":{"name":"Under_Point"}}
      ]
    }
  },
  "arcs": [
    [[1,2],[0,-2]],
    [[1,0],[-1,0],[0,2],[1,0]],
    [[1,2],[1,0],[0,-2],[-1,0]],
    [[0,-1],[2,0]]
  ]
}

Vezi si

Referințe

  1. ^ a b Butler, Howard; Daly, Martin; Doyle, Allan; Gillies, Sean; Hagen, Stefan; Schaub, Tim (august 2016). RFC 7946 . IETF . doi : 10.17487 / RFC7946 .
  2. ^ „Furnizarea indicațiilor de orientare” . developer.apple.com .
  3. ^ "Pagina de informații GeoJSON" . lists.geojson.org .
  4. ^ "Arhiva GeoJSON martie 2007 după fir" . lists.geojson.org .
  5. ^ "Geographic JSON (geojson) -" . datatracker.ietf.org .
  6. ^ "GeoJSON RFC # 3.1.1" .
  7. ^ "topojson / topojson-specification" . 11 decembrie 2020 - prin GitHub.
  8. ^ "topojson / topojson" . GitHub .
  9. ^ "Release / 1.11.0-News - GDAL" . trac.osgeo.org .
  10. ^ "AsTopoJSON" . postgis.net .

Surse

linkuri externe