GeoJSON (.geojson)

IETF Standardi

Geographic JavaScript Object Notation (GeoJSON) on maantieteellisten tietorakenteiden koodaukseen tarkoitettu universaali, verkkonatiivi standardi, jota käytetään laajasti nykyaikaisissa verkkokartoissa (Leaflet, Mapbox, OpenLayers) ja GIS-sovelluksissa.

Muunna tiedostot muodosta GEOJSON muotoon KML

Ilmainen selaimen sisäinen GEOJSON - KML-muunnin. Muunna tiedostoja välittömästi laitteellasi.

Tarkastele ja metatiedot

Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat GeoJSON-tiedostot tarkistamalla tiedoston alun binäärisarjan:

Valitse tai pudota tiedostot tähän

100 % yksityinen selaimen sisäinen muunnos - tiedostot eivät poistu laitteeltasi

tai liitä Ctrl+V
Tietosuojatakuu: 0 % verkkosiirtoa 0 tavua ladattu ulkoisille palvelimille. Kaikki käsittely tapahtui paikallisesti selaimen hiekkalaatikossa.

Tavutason otsikon allekirjoitus (Magic Bytes)

Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat GeoJSON-tiedostot tarkistamalla tiedoston alun binäärisarjan:

HEX-ALLEKIRJOITUS (OFFSET 0):

7B 0A 20 20 22 74 79 70 65 22 3A 20 22 46 65 61 74 75 72 65

ASCII-ESITYSTAPA: {\n "type": "Feature

Standardointi: IETF RFC 7946

Tekniset tiedot

SäiliöarkkitehtuuriJSON document adhering to RFC 7946 representing geographic Features, FeatureCollections, and Geometries
PakkausUncompressed text (readily compressed over HTTP via Gzip or Brotli)
Tavujärjestys (Endianness)UTF-8 text stream
VäriavaruudetN/A (Geographic Data)
Kanavat ja rakennePoints, MultiPoints, LineStrings, MultiLineStrings, Polygons, MultiPolygons, GeometryCollections, and custom properties
Suurimmat mitatWorld Geodetic System 1984 (WGS 84) coordinate space: Longitude (-180 to +180), Latitude (-90 to +90)
LäpinäkyvyysNone
Suoratoisto ja progressiivinen latausLine-delimited GeoJSON (GeoJSONL / GeoJSONSeq) enables continuous streaming of millions of features

Tekninen vertailumatriisi: GeoJSON vs. kilpailijat

Tekninen attribuuttiGeoJSON (Nykyinen)KMLGPXSHP
Verkkokartoituksen omaksuminen100-prosenttisesti universaali web-GIS-oletusGoogle Earthin oletusGPS-laitteiden ja kuntoilun oletusTyöpöytä-GIS:n perinteinen standardi
Koordinaattijärjestys[Pituuspiiri, leveyspiiri] (X, Y)Pituuspiiri, leveyspiiri, korkeusLeveyspiiri, pituuspiiriX, Y -koordinaatit
SyntaksityyliPuhtaat JSON-avain-arvoparitLaajat XML-tunnisteet (<kml>)Laajat XML-tunnisteet (<gpx>)Monitiedostoinen binaari (.shp, .shx, .dbf)
Ominaisuuksien schemaMielivaltainen JSON-ominaisuusolioExtendedData-schematunnisteetKiinteät GPX-schematunnisteetdBase IV (.dbf) kiinteät sarakkeet

Yleiset korruptiotilat ja heksatietojehdotusopas

Kartan pisteet ilmestyvät valtamerelle lähelle Etelämannerta todellisen sijaintinsa sijaan.

Perussyy: Leveys- ja pituuspiirin arvot vaihtuivat vahingossa keskenään koordinaattitaulukossa.

Korjaus: Vaihda koordinaattien paikkoja [lon, lat] käyttämällä File2File GeoJSON -muunninta.

Turvallisuusanalyysi ja jäsenninhyökkäysvektorit

GeoJSON-ominaisuudet voivat sisältää mielivaltaista käyttäjän syötettä, joka on puhdistettava ennen renderöintiä kartan ponnahdusikkunoihin XSS-hyökkäysten estämiseksi.

Tunnetut hyökkäysvektorit

  • Sivustojen välinen komentosarjahyökkäys (XSS) kartan ohjeteksteissä renderöityjen GeoJSON-ominaisuuksien suojaamattoman HTML:n kautta.
  • Palvelunestohyökkäys syvälle sisäkkäisten GeometryCollection-geometrioiden tai miljoonan verteksin monikulmioiden kautta.
  • Palvelimen kautta toteutettu pyynnön väärennös (SSRF) etämuotoisen GeoJSON-aineiston lataamisen kautta.

Parhaat puolustuskäytännöt:

Historia ja virstanpylväät

2016IETF standardoi virallisesti GeoJSON-muodon RFC 7946 -määrityksenä ja tekee WGS 84 -koordinaattijärjestelmästä pakollisen.
2014GitHub ottaa käyttöön natiivin, interaktiivisen visuaalisen kartanrenderöinnin kaikille .geojson-tiedostoille.
2008Howard Butler, Sean Gillies ja avoimen lähdekoodin GIS-yhteisö julkaisevat ensimmäisen GeoJSON 1.0 -spesifikaation.

Tärkeimmät edut

  • Verkkonatiivi standardi: siirtyy suoraan JavaScript-objekteiksi selaimen karttakirjastoissa (Mapbox GL JS, Leaflet).
  • Ihmisen luettava JSON-rakenne mahdollistaa vaivattoman ohjelmallisen luonnin, suodatuksen ja virheenjäljityksen.
  • Mielivaltainen ominaisuusschema (properties): liitä mitä tahansa mukautettua metatietoa (väestömäärä, nimi, nopeus, liikevaihto) suoraan geometrisiin muotoihin.

Tekniset rajoitukset

  • Tekstipohjainen laajuus: tallentaa liukulukukoordinaatit toistuvina ASCII-merkkeinä, mikä johtaa suurempiin tiedostokokoihin kuin binaariset Shapefile- tai FlatGeobuf-tiedostot.
  • RFC 7946 määrittää tiukasti [pituuspiiri, leveyspiiri] -järjestyksen, mikä hämmentää usein 'Lat/Long'-järjestykseen tottuneita kehittäjiä.
  • Suuret monikulmiot, joissa on miljoona verteksejä, voivat hidastaa verkkoselaimen DOM-renderöintiä.

Mielenkiintoisia teknisiä faktoja

  • Virallinen GeoJSON-standardi järjestää koordinaatit muodossa [pituuspiiri, leveyspiiri] (X, Y -kartesiolainen järjestjestys), mikä on täysin päinvastoin kuin ihmisten puhekielessä ('leveyspiiri, pituuspiiri').
  • Jos viet .geojson-tiedoston GitHubiin, GitHub renderöi sen automaattisesti interaktiiviseksi, klikattavaksi kartaksi.
  • RFC 7946 edellyttää, että monikulmion rajarenkaiden on noudatettava 'oikean käden sääntöä': ulkorenkaiden on kierrettävä vastapäivään.

Usein kysytyt tekniset kysymykset

Miksi GeoJSON-koordinaattini on järjestetty muodossa [pituusaste, leveysaste] eikä [leveysaste, pituusaste]?

Koska matematiikassa ja tietokonegrafiikassa koordinaatit määritellään aina muodossa (X, Y). Pituusaste edustaa vaaka-akselia (X) ja leveysaste pystyakselia (Y).

Miten voin muuntaa KML- tai Shapefile-tiedoston GeoJSON-muotoon?

Voit muuntaa Google Earthin KML-tiedostot tai Esri Shapefile -tiedostot puhtaaksi, verkkovalmiiksi GeoJSON-muodoksi sekunneissa File2File.app-palvelulla suoraan selaimessasi.

Mikä ero on GeoJSON- ja Shapefile-muotojen välillä?

Shapefile on 1990-luvun vanhentunut useasta tiedostosta koostuva binäärimuoto (.shp, .shx, .dbf). GeoJSON on moderni, yhden tiedoston avoin verkkosiirtoformaatti, joka on kirjoitettu puhtaana JSON-muotona.