GeoJSON (.geojson)

IETF Стандарт

Географічний формат JavaScript Object Notation (GeoJSON) є універсальним вебстандартом для кодування структур географічних даних, який широко використовується в сучасних вебкартографічних сервісах (Leaflet, Mapbox, OpenLayers) та ГІС-додатках.

Конвертувати з GEOJSON у KML

Безкоштовний конвертер з GEOJSON у KML у браузері. Миттєво конвертуйте файли на своєму пристрої.

Аналіз та метадані

Операційні системи та аналізатори файлів ідентифікують файли GeoJSON, перевіряючи початкову послідовність бінарних байтів:

Виберіть або перетягніть файли сюди

100% приватна конвертація у браузері - файли ніколи не покидають ваш пристрій

або вставте Ctrl+V
Гарантія конфіденційності з нульовою передачею мережею: 0 байт завантажено на зовнішні сервери. Уся обробка виконується локально в пісочниці вашого браузера.

Сигнатура заголовка на байтовому рівні (Magic Bytes)

Операційні системи та аналізатори файлів ідентифікують файли GeoJSON, перевіряючи початкову послідовність бінарних байтів:

ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 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, що призводить до більшого розміру файлів порівняно з бінарними Shapefile або FlatGeobuf.
  • RFC 7946 суворо вимагає порядок [Довгота, Широта], що часто плутає розробників, звичних до 'Шир/Дов'.
  • Великі полігони з мільйонами вершин можуть спричинити сповільнення рендерингу DOM у веббраузері.

Цікаві технічні факти

  • Офіційний стандарт GeoJSON впорядковує координати як [Довгота, Широта] (декартовий порядок X, Y), що є прямо протилежним до того, як зазвичай кажуть люди ('Широта, Довгота').
  • Якщо ви закомітите файл .geojson на GitHub, GitHub автоматично відрендерить його як інтерактивну карту, на яку можна натискати.
  • RFC 7946 вимагає, щоб межі полігонів дотримувалися 'правила правої руки': зовнішні межі повинні обертатися проти годинникової стрілки.

Поширені технічні запитання

Чому мої координати GeoJSON впорядковані як [довгота, широта] замість [широта, довгота]?

Оскільки в математиці та комп'ютерній графіці координати завжди задаються як (X, Y). Довгота представляє горизонтальну вісь X, а широта — вертикальну вісь Y.

Як конвертувати KML або Shapefile у GeoJSON?

Ви можете конвертувати файли Google Earth KML або Esri Shapefiles у чистий GeoJSON, готовий для вебвикористання, за лічені секунди за допомогою File2File.app безпосередньо у браузері.

У чому різниця між GeoJSON та Shapefile?

Shapefile — це застарілий бінарний багатофайловий формат із 1990-х років (.shp, .shx, .dbf). GeoJSON — це сучасний вебформат на основі єдиного файлу, написаний у чистому JSON.