GeoJSON (.geojson)

IETF Стандарт

Географският JavaScript Object Notation (GeoJSON) е универсален, уеб-нативен стандарт за кодиране на географски данни, използван широко в съвременните уеб карти (Leaflet, Mapbox, OpenLayers) и ГИС приложения.

Конвертиране на GEOJSON към KML

Безплатен конвертор от GEOJSON към KML в браузъра. Конвертирайте файлове незабавно на вашето устройство.

Инспектиране и метаданни

Операционните системи и файловите анализатори идентифицират GeoJSON файлове чрез проверка на началната двоична байтова последователност:

Изберете или пуснете файлове тук

100% поверително конвертиране в браузъра - файловете никога не напускат вашето устройство

или поставете Ctrl+V
Гаранция за поверителност с нулево мрежово предаване: 0 байта са качени на външни сървъри. Цялата обработка се извършва локално в пясъчниците на вашия браузър.

Байтов подпис на хедъра (Magic Bytes)

Операционните системи и файловите анализатори идентифицират GeoJSON файлове чрез проверка на началната двоична байтова последователност:

HEX ПОДПИС (ОФСЕТ 0):

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

ASCII ПРЕДСТАВЯНЕ: {\n "type": "Feature

Стандартизация: IETF RFC 7946

Технически спецификации

Контейнерна архитектураJSON document adhering to RFC 7946 representing geographic Features, FeatureCollections, and Geometries
КомпресияUncompressed text (readily compressed over HTTP via Gzip or Brotli)
Поредност на байтовете (Endianness)UTF-8 text stream
Цветови пространстваN/A (Geographic Data)
Канали и структураPoints, MultiPoints, LineStrings, MultiLineStrings, Polygons, MultiPolygons, GeometryCollections, and custom properties
Максимални размериWorld Geodetic System 1984 (WGS 84) coordinate space: Longitude (-180 to +180), Latitude (-90 to +90)
ПрозрачностNone
Стрийминг и прогресивно зарежданеLine-delimited GeoJSON (GeoJSONL / GeoJSONSeq) enables continuous streaming of millions of features

Техническа сравнителна матрица: GeoJSON спрямо конкуренти

Технически атрибутGeoJSON (Текущ)KMLGPXSHP
Възприемане в уеб картите100% универсален уеб ГИС стандарт по подразбиранеСтандарт по подразбиране за Google EarthСтандарт по подразбиране за GPS устройства и фитнесНаследен стандарт за десктоп ГИС
Координатен ред[Географска дължина, Географска ширина] (X, Y)Географска дължина, Географска ширина, Надморска височинаГеографска ширина, Географска дължинаX, Y координати
Синтактичен стилЧисти JSON ключ-стойностиМногословни XML тагове (<kml>)Многословни XML тагове (<gpx>)Многофайлов бинарен формат (.shp, .shx, .dbf)
Схема на свойстватаПроизволен обект с JSON свойстваТагове за схема ExtendedDataФиксирани GPX тагове за схемаФиксирани колони за dBase IV (.dbf)

Често срещани режими на повреда и ръководство за хекс възстановяване

Точките на картата се появяват в океана близо до Антарктида вместо на истинското си място.

Първопричина: Стойностите за географска ширина и дължина бяха случайно разменени в масива с координати.

Възстановяване: Разменете позициите на координатите [lon, lat], като използвате конвертора GeoJSON на File2File.

Анализ на сигурността и вектори на атака към парсера

Свойствата на GeoJSON могат да съдържат произволни потребителски входни данни, които трябва да бъдат почистени преди изобразяване в изскачащи прозорци на карти, за да се предотврати XSS.

Известни вектори на атака

  • Междусайтов скриптинг (XSS) чрез неубежан HTML в свойствата на GeoJSON елементите, визуализирани в подсказките на картата.
  • Отказ от услуга чрез дълбоко вложени GeometryCollections или полигони с милиони върхове.
  • Фалшифициране на заявки от страна на сървъра (SSRF) чрез отдалечено зареждане на GeoJSON елементи.

Защитни добри практики:

Исторически произход и етапи

2016IETF официално стандартизира GeoJSON формата като RFC 7946, изисквайки задължително координатната система WGS 84.
2014GitHub въвежда вградено интерактивно визуално картографиране за всички .geojson файлове.
2008Хауърд Бътлър, Шон Гилис и общността за ГИС с отворен код публикуват първоначалната спецификация GeoJSON 1.0.

Основни предимства и плюсове

  • Нативен уеб стандарт: мапира се директно в JavaScript обекти в библиотеки за карти в браузъра (Mapbox GL JS, Leaflet).
  • Четената от хора JSON структура позволява лесно програматично създаване, филтриране и отстраняване на грешки.
  • Произволна схема от свойства: прикрепяйте всякакви потребителски метаданни (население, име, скорост, приходи) директно към геометрични форми.

Технически ограничения и минуси

  • Словност на текста: съхранява координати с плаваща запетая като повтарящи се ASCII цифри, което води до по-големи файлови размери от бинарните Shapefiles или FlatGeobuf.
  • RFC 7946 изисква строго ред [Географска дължина, Географска ширина], което често обърква разработчиците, свикнали с „Ширина/Дължина".
  • Големи полигони с милиони върхове могат да доведат до забавяне на изобразяването на DOM в уеб браузъра.

Интересни технически факти

  • Официалният стандарт GeoJSON подрежда координатите като [Географска дължина, Географска ширина] (Декартов ред X, Y), което е точно обратното на това как говорят хората („Географска ширина, Географска дължина").
  • Ако качите .geojson файл в GitHub, GitHub автоматично го визуализира като интерактивна карта, върху която може да се клика.
  • RFC 7946 изисква граничните пръстени на полигоните да следват „правилото на дясната ръка": външните пръстени трябва да се навиват обратно на часовниковата стрелка.

Често задавани технически въпроси

Защо моите GeoJSON координати са подредени като [дължина, ширина] вместо [ширина, дължина]?

Защото в математиката и компютърната графика координатните стойности винаги се задават като (X, Y). Географската дължина представлява хоризонталната ос X, а географската ширина представлява вертикалната ос Y.

Как мога да конвертирам KML или Shapefile в GeoJSON?

Можете да конвертирате Google Earth KML файлове или Esri Shapefile в чист, готов за уеб GeoJSON за секунди, използвайки File2File.app директно в браузъра си.

Каква е разликата между GeoJSON и Shapefile?

Shapefile е остарял многофайлов двоичен формат от 90-те години на миналия век (.shp, .shx, .dbf). GeoJSON е модерен отворен уеб формат от един единствен файл, написан в чист JSON.