GeoJSON

GeoJSON formatu estandar ireki bat da, ezaugarri geografiko sinpleak eta ezaugarri ez-espazialak adierazteko diseinatua. JSON formatuan oinarritzen da.

Ezaugarrien artean puntuak (helbideak eta kokapenak), lerro-kateak (kaleak, errepideak eta mugak), poligonoak (herrialdeak, probintziak, lur-zatiak) eta mota horretako parte anitzeko bildumak. GeoJSONen ezaugarriak ez dira soilik mundu fisikoko entitateak irudikatzera mugatzen;  mugikorretako hornitzaileek eta interneteko nabigazio-aplikazioek, adibidez, GeoJSON erabiliz deskriba lezakete bere zerbitzu-estaldura.

GeoJSON formatua ez dator bat informazio geografikoko sistemaren beste estandar batzuekin; izan ere, formatu hori idatzi zen eta mantentzen da ez arauen antolaketa formal baten bidez, baizik eta Interneteko garatzaileen lantalde baten bidez.

GeoJSON-en ondorengo eratorri nabarmen bat TopoJSON da, GeoJSON-en hedapen bat da topologia geoespaziala kodetzen duena eta normalean fitxategi tamaina txikiagoak ematen dituena.

 Historia 
Lantaldea eta GeoJSON formatuari buruzko eztabaida 2007ko martxoan hasi zen eta formatuaren zehaztapena 2008ko ekainean amaitu zen.

2015eko apirilean, Interneteko Ingeniaritzako Lan Taldeak Geographic JSONen working group sortu zuen, eta 2016ko abuztuan GeoJSON RFC 7946 gisa argitaratu zuen.

 Adibidea 
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [-13.712222222, 9.509166666]
      },
      "properties": {
        "prop0": "value0",
        "marker-size": "small",
        "marker-color": "#F90606"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [-2.93333, 35.1667]
      },
      "properties": {
        "prop0": "value0",
        "marker-size": "small",
        "marker-color": "#F90606"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [12.484166666, 32.792222222]
      },
      "properties": {
        "prop0": "value0",
        "marker-size": "small",
        "marker-color": "#F90606"
      }
    },

    {
      "type": "Feature",
      "properties": {"stroke": "#F90606","stroke-width": 2},
      "geometry": {
        "type": "LineString",
        "coordinates": [
          [-13.712222222, 9.509166666], [-9.164444444, 11.418888888], [-7.992222222, 12.645833333], [-0.05, 16.266666666], [-0.05, 16.266666666], [1.4, 18.433333333], [1.810555555, 20.437222222], [-0.666666666, 23.5], [0.166666666, 26.7], [-0.293888888, 27.874166666], [3.666666666, 32.483333333], [3.058611111, 36.776388888], [-0.633055555, 35.696944444], [-2.93333, 35.1667], [-5.803888888, 35.776666666], [-9.72694, 29.7], [-5.803888888, 35.776666666], [-2.93333, 35.1667]
        ]
      }
    },    
    {
      "type": "Feature",
      "properties": {"stroke": "#F90606","stroke-width": 2},
      "geometry": {
        "type": "LineString",
        "coordinates": [
          [3.666666666, 32.483333333], [5.316666666, 31.95], [9.423888888, 29.9675], [9.5, 30.133333333], [12.484166666, 32.792222222], [12.729722222, 32.754444444]   
        ]
      }
    }
  ]
}Hau da Miñan liburuan Ibrahima protagonistak egiten duen bidaiaren GeoJSON errepresentazioa (eta alboan mapa interaktiboa):{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [-13.712222222, 9.509166666]
      },
      "properties": {
        "prop0": "value0",
        "marker-size": "small",
        "marker-color": "#F90606"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [-2.93333, 35.1667]
      },
      "properties": {
        "prop0": "value0",
        "marker-size": "small",
        "marker-color": "#F90606"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [12.484166666, 32.792222222]
      },
      "properties": {
        "prop0": "value0",
        "marker-size": "small",
        "marker-color": "#F90606"
      }
    },

    {
      "type": "Feature",
      "properties": {"stroke": "#F90606","stroke-width": 2},
      "geometry": {
        "type": "LineString",
        "coordinates": [
          [-13.712222222, 9.509166666], [-9.164444444, 11.418888888], [-7.992222222, 12.645833333], [-0.05, 16.266666666], [-0.05, 16.266666666], [1.4, 18.433333333], [1.810555555, 20.437222222], [-0.666666666, 23.5], [0.166666666, 26.7], [-0.293888888, 27.874166666], [3.666666666, 32.483333333], [3.058611111, 36.776388888], [-0.633055555, 35.696944444], [-2.93333, 35.1667], [-5.803888888, 35.776666666], [-9.72694, 29.7], [-5.803888888, 35.776666666], [-2.93333, 35.1667]
        ]
      }
    },    
    {
      "type": "Feature",
      "properties": {"stroke": "#F90606","stroke-width": 2},
      "geometry": {
        "type": "LineString",
        "coordinates": [
          [3.666666666, 32.483333333], [5.316666666, 31.95], [9.423888888, 29.9675], [9.5, 30.133333333], [12.484166666, 32.792222222], [12.729722222, 32.754444444]   
        ]
      }
    }
  ]
}
 Geometriak 
Puntuak dira hauek: [x, y] edo [x, y, z]. Definitu daitezke [longitudea, latitudea] gisa, edo [easting, northing] gisa ere bai. Altitudea, metrotan, hautazko hirugarren zenbaki bat da. Zenbaki hamartarrak dira.

Adibidez, Londres (51.5074° Iparraldean, 0.1278° Mendebaldean) honela adierazten da: [-0.1278, 51.5074].
+Geometriako primitiboakMotaAdibideakPuntuaFitxategi:SFA_Point.svg{
    "type": "Point", 
    "coordinates": [30.0, 10.0]
}LineStringFitxategi:SFA_LineString.svg{
    "type": "LineString", 
    "coordinates": [
        [30.0, 10.0],
        [10.0, 30.0],
        [40.0, 40.0]
    ]
}PoligonoaFitxategi: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]
        ]
    ]
}Fitxategi:SFA_Polygon_with_hole.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]
        ]
    ]
}
+Zati anitzeko geometriakMotaAdibideakPuntu anitzekoaFitxategi:SFA_MultiPoint.svg{
    "type": "MultiPoint", 
    "coordinates": [
        [10.0, 40.0],
        [40.0, 30.0],
        [20.0, 20.0],
        [30.0, 10.0]
    ]
}MultiLine StringFitxategi: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]
        ]
    ]
}MultipoligonoFitxategi: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]
            ]
        ]
    ]
}Fitxategi: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]
            ]
        ]
    ]
}Geometria bildumaFitxategi: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]
                ]
            ]
        }
    ]
}

 GeoJSON lerroka  (Newline-delimited) 
GeoJSON-en alternatiba bat da lerro bakoitzean ezaugarri geografiko bana kodetzea da, lerro-bukaerako karaktereek (edo erregistroak bereizteko beste karaktereren batzuek) erregistroen arteko bereizketa definitzen dutela 

Formatu hori GeoJSON normala baino askoz eraginkorragoa izan daiteke analizatzeko, tresnek erregistro indibidualak paraleloan irakur baititzakete. Formatu hau newline-delimited JSON-en antzekoa da.

Newline-delimited JSON-en  barianteak dira bese hauek:

 GeoJSONSeq (GeoJSON Text Sequences-rako laburdura) - ezaugarriak bereizteko karaketere erregistro-bereizleekin (RS, record-separator)
 GeoJSONL (GeoJSON Lines-erako laburdura) - ezaugarriak bereizten dira lerro bukaerako karaktereen bitartez.

 TopoJSON 
TopoJSON topologia kodetzen duen GeoJSON luzapen bat da. Geometriak modu diskretuan irudikatu beharrean, geometriak TopoJSON fitxategietan arku izeneko lerro-segmentu partekatuetatik lotzen dira. Arkuak puntu-sekuentziak dira, eta sokak eta poligonoak, berriz, arku-sekuentziak. Arku bakoitza behin bakarrik definitzen da, baina hainbat aldiz erreferentziatu daiteke hainbat formatan erredundantzia murriztuz eta fitxategiaren tamaina txikituz. Gainera, TopoJSON-ek topologia erabiltzen duten aplikazioak errazten ditu, hala nola, forma sinplifikatzea, mapen kolorazio automatikoa eta kartografiak.

TopoJSON espezifikazioaren erreferentziazko aplikazio bat erabilgarri dago komando-lerroko tresna gisa GeoJSON-etik (edo ESRI Shapefiles) TopoJSON kodetzeko eta bezeroaren aldeko JavaScript liburutegi bat TopoJSON berriro GeoJSON-era deskodetzeko. TopoJSON-ek ere TV-k babesten du 1.11 bertsiotik aurrera eta PostGIS-ek 2.1.0 bertsiotik aurrera.

 TopoJSON Schema 
0° latitude eta 0° longitude koordenatuetatik gertu dagoen GIS forma bat emanda, metadatu guztiak (Polygon, LineString, Point elements, arcs eta propietateak) dituen topojson fitxategi sinple baina baliozko eta oso bat honela definitzen da:
{
  "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]]
  ]
}

 Erreferentziak 

 Bibliografia 





 Kanpo estekak 

 Webgune ofiziala
 https://geojsonlint.com
 topografiak/topografiak

Kategoria:JSON
Kategoria:Geografia ezaugarriak