GeoJSON (.geojson)
IETF StandartinisGeografinio JavaScript objekto žymėjimo kalba (GeoJSON) yra universalus, žiniatinklyje gimtas geografinių duomenų struktūrų kodavimo standartas, plačiai naudojamas šiuolaikiniuose žiniatinklio žemėlapiuose („Leaflet", „Mapbox", „OpenLayers") ir GIS programose.
Konvertuoti GEOJSON į KML
Nemokamas GEOJSON į KML konverteris naršyklėje. Konvertuokite failus akimirksniu savo įrenginyje.
Tikrinti ir metaduomenys
Operacinės sistemos ir failų analizatoriai atpažįsta GeoJSON failus tikrindami pradinę dvejetainę baitų seką:
Baitų lygio antraštės parašas (magiškieji baitai)
Operacinės sistemos ir failų analizatoriai atpažįsta GeoJSON failus tikrindami pradinę dvejetainę baitų seką:
ŠEŠIOLIKTAINIS PARAŠAS (POSLINKIS 0):
7B 0A 20 20 22 74 79 70 65 22 3A 20 22 46 65 61 74 75 72 65ASCII ATVAIZDAVIMAS: {\n "type": "Feature
Standartizacija: IETF RFC 7946
Techninės specifikacijos
| Konteinerio architektūra | JSON document adhering to RFC 7946 representing geographic Features, FeatureCollections, and Geometries |
| Glaudinimas | Uncompressed text (readily compressed over HTTP via Gzip or Brotli) |
| Baitų seka (Endianness) | UTF-8 text stream |
| Spalvų erdvės | N/A (Geographic Data) |
| Kanalai ir struktūra | Points, MultiPoints, LineStrings, MultiLineStrings, Polygons, MultiPolygons, GeometryCollections, and custom properties |
| Maksimalūs matmenys | World Geodetic System 1984 (WGS 84) coordinate space: Longitude (-180 to +180), Latitude (-90 to +90) |
| Skaidrumas | None |
| Srautas ir progresyvusis įkėlimas | Line-delimited GeoJSON (GeoJSONL / GeoJSONSeq) enables continuous streaming of millions of features |
Techninė palyginimo matrica: GeoJSON vs konkurentai
| Techninis atributas | GeoJSON (Dabartinis) | KML | GPX | SHP |
|---|---|---|---|---|
| Pritaikymas žiniatinklio žemėlapiams | 100% universalus žiniatinklio GIS numatytasis standartas | „Google Earth" numatytasis | GPS įrenginių ir sporto numatytasis | Darbalaukio GIS pasenęs standartas |
| Koordinačių tvarka | [ilguma, platuma] (X, Y) | ilguma, platuma, aukštis | platuma, ilguma | X, Y koordinatės |
| Sintaksės stilius | Švarūs JSON raktai-reikšmės | Perteklinės XML žymos (<kml>) | Perteklinės XML žymos (<gpx>) | Kelių failų dvejetainis (.shp, .shx, .dbf) |
| Savybių schema | Pasirinktinis JSON savybių objektas | „ExtendedData" schemos žymos | Fiksuotos GPX schemos žymos | „dBase IV" (.dbf) fiksuoti stulpeliai |
Dažni sugadinimo režimai ir šešioliktainio atkūrimo vadovas
Žemėlapio taškai atsiranda vandenyje prie Antarktidos, o ne tikrojoje jų vietoje.
Pirminė priežastis: Koordinačių masyve buvo netyčia sukeistos vietomis platumos ir ilgumos reikšmės.
Atkūrimas: Sukeiskite koordinačių pozicijas [ilgun., plat.] naudodami „File2File GeoJSON" keitiklį.
Saugumo analizė ir analizatoriaus atakos vektoriai
GeoJSON savybėse gali būti pasirinktinio vartotojo įvesties, kurią prieš atvaizduojant žemėlapio iššokančiuose languose būtina dezinfekuoti, kad būtų išvengta XSS.
Žinomi atakos vektoriai
- Svetainių tarpinio skriptavimo (XSS) ataka per nesukeistą HTML kodą GeoJSON elementų savybėse, rodomose žemėlapio patarimuose.
- Paslaugų trikdymo ataka per giliai įdėtas geometrijų kolekcijas („GeometryCollections") arba milijono viršūnių daugiakampius.
- Serverio pusės užklausų klastojimas (SSRF) įkeliant nuotolinius GeoJSON elementus.
Geriausia apsaugos praktika:
Istorinė kilmė ir svarbiausi etapai
Pagrindiniai privalumai
- Gimtas žiniatinklio standartas: tiesiogiai integruojamas į JavaScript objektus naršyklės žemėlapių bibliotekose („Mapbox GL JS", „Leaflet").
- Žmogui suprantama JSON struktūra leidžia nesudėtingai kurti programiškai, filtruoti ir derinti klaidas.
- Laisva savybių schema: prie geometrinių formų galima tiesiogiai pridėti bet kokius pasirinktinius metaduomenis (gyventojų skaičių, pavadinimą, greitį, pajamas).
Techniniai apribojimai ir trūkumai
- Teksto perteklius: slankiojo kablelio koordinates saugo kaip pasikartojančius ASCII skaitmenis, todėl failai užima daugiau vietos nei dvejetainiai „Shapefile" ar „FlatGeobuf".
- RFC 7946 griežtai reikalauja [ilguma, platuma] tvarkos, kas dažnai klaidina programuotojus, pripratusius prie „platuma / ilguma".
- Dideli daugiakampiai su milijonais viršūnių gali sulėtinti interneto naršyklės DOM atvaizdavimą.
Įdomūs techniniai faktai
- Oficialus GeoJSON standartas koordinates rikiuoja tvarka [ilguma, platuma] (X, Y Dekarto tvarka), o tai yra visiškai priešingai nei kalba žmonės („platuma, ilguma").
- Jei įkeliate .geojson failą į „GitHub", „GitHub" automatiškai atvaizduoja jį kaip interaktyvų, spustelėjamą žemėlapį.
- RFC 7946 reikalauja, kad daugiakampio ribiniai žiedai atitiktų „dešinės rankos taisyklę": išoriniai žiedai turi būti sukti prieš laikrodžio rodyklę.
Dažniausiai užduodami techniniai klausimai
Kodėl mano GeoJSON koordientų tvarka yra [ilguma, platuma], o ne [platuma, ilguma]?
Kadangi matematikoje ir kompiuterinėje grafikoje koordientai visada nurodomi kaip (X, Y). Ilguma reiškia horizonalią X ašį, o platuma – vertikalią Y ašį.
Kaip konvertuoti KML arba „Shapefile“ į GeoJSON?
Naudodami File2File.app tiesiogiai savo naršyklėje per kelias sekundes galite konvertuoti „Google Earth“ KML failus arba „Esri Shapefile“ į švarų, žiniatinkliui paruoštą GeoJSON.
Kuo skiriasi GeoJSON ir „Shapefile“?
„Shapefile“ yra pasenęs dešimtojo dešimtmečio kelių failų dvejetainis formatas (.shp, .shx, .dbf). GeoJSON yra modernus, vieno failo atviro žiniatinklio formatas, parašytas švariu JSON.
Susijusios GeoJSON konvertavimo poros
GeoJSON vektorių konvertavimas į Google Kml paverčia lengvašvores JSON koordinačių masyvus į struktūrizuotus XML dokumentus, pritaikytus Google Earth ir Google Maps.
„Google KML" failų konvertavimas į „GeoJSON" paverčia hierarchinius XML geografinius duomenis lengvais vektoriais „JavaScript Object Notation" formatu, skirtu šiuolaikiniams žiniatinklio žemėlapiams.
GeoJSON vektorių duomenų konvertavimas į GPX formatą paverčia standartinius geografinius JSON objektus į XML pagrindu sukurta formatą, kuris yra optimizuotas fiziniams navigacijos įrenginiams.