GeoJSON
GeoJSON | |
---|---|
Jatorria | |
Ezaugarriak | |
Media mota | application/geo+json eta application/vnd.geo+json |
Deskribapena | |
Oinarritua | JavaScript Object Notation |
Ekoizpena | |
Garatzailea | IETF |
geojson.org | |
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.[1]
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.[2]
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
[aldatu | aldatu iturburu kodea]Lantaldea eta GeoJSON formatuari buruzko eztabaida 2007ko martxoan hasi zen eta formatuaren zehaztapena 2008ko ekainean amaitu zen.[3]
2015eko apirilean, Interneteko Ingeniaritzako Lan Taldeak Geographic JSONen working group sortu zuen, eta 2016ko abuztuan GeoJSON RFC 7946 gisa argitaratu zuen.[4]
Adibidea
[aldatu | aldatu iturburu kodea]Hau da Miñan liburuan Ibrahima protagonistak egiten duen bidaiaren GeoJSON errepresentazioa (eta alboan mapa interaktiboa):[5]
{
"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
[aldatu | aldatu iturburu kodea]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.[6]
Adibidez, Londres (51.5074° Iparraldean, 0.1278° Mendebaldean) honela adierazten da: [-0.1278, 51.5074].
Mota | Adibideak | |
---|---|---|
Puntua | {
"type": "Point",
"coordinates": [30.0, 10.0]
}
| |
LineString | {
"type": "LineString",
"coordinates": [
[30.0, 10.0],
[10.0, 30.0],
[40.0, 40.0]
]
}
| |
Poligonoa | {
"type": "Polygon",
"coordinates": [
[
[30.0, 10.0],
[40.0, 40.0],
[20.0, 40.0],
[10.0, 20.0],
[30.0, 10.0]
]
]
}
| |
{
"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]
]
]
}
|
Mota | Adibideak | |
---|---|---|
Puntu anitzekoa | {
"type": "MultiPoint",
"coordinates": [
[10.0, 40.0],
[40.0, 30.0],
[20.0, 20.0],
[30.0, 10.0]
]
}
| |
MultiLine String | {
"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]
]
]
}
| |
Multipoligono | {
"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]
]
]
]
}
| |
{
"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 bilduma | {
"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)
[aldatu | aldatu iturburu kodea]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.[7]
TopoJSON
[aldatu | aldatu iturburu kodea]TopoJSON topologia kodetzen duen GeoJSON luzapen bat da. Geometriak modu diskretuan irudikatu beharrean, geometriak TopoJSON fitxategietan arku izeneko lerro-segmentu partekatuetatik lotzen dira.[8] 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.[9] 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.[10][11]
TopoJSON Schema
[aldatu | aldatu iturburu kodea]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
[aldatu | aldatu iturburu kodea]- ↑ «Providing Directions» developer.apple.com.
- ↑ «GeoJSON Info Page» lists.geojson.org.
- ↑ «The GeoJSON March 2007 Archive by thread» lists.geojson.org.
- ↑ «Geographic JSON (geojson) -» datatracker.ietf.org.
- ↑ «Mapa: Konakry - Ghardaia - Sabratha - Ghardaia-Nador» query.wikidata.org (Wikidata Query Service) (Noiz kontsultatua: 2021-04-07).
- ↑ Butler, H.; Daly, M.; Doyle, A.; Gillies, Sean; Schaub, T.; Hagen, Stefan. (August 2016). GeoJSON RFC #3.1.1. .
- ↑ (Ingelesez) «GeoJSONL: An optimized format for large geographic datasets» Interline Technologies 2018-09-11.
- ↑ topojson/topojson-specification. 11 December 2020.
- ↑ «topojson/topojson» GitHub.
- ↑ «Release/1.11.0-News – GDAL» trac.osgeo.org.
- ↑ «AsTopoJSON» postgis.net.
Bibliografia
[aldatu | aldatu iturburu kodea]- Andrews, Christopher. (18 September 2007). Emerging Technology: AJAX and GeoJSON. .
- Geoweb Guru: Technical Overview: GeoJSON. 16 February 2009.
- Lambert, Chris. (4 May 2009). Google Geo Developers Blog: Build on top of your public Latitude location with GeoJSON & KML. .