GeoJSON (.geojson)
IETF СтандартГеографічний формат JavaScript Object Notation (GeoJSON) є універсальним вебстандартом для кодування структур географічних даних, який широко використовується в сучасних вебкартографічних сервісах (Leaflet, Mapbox, OpenLayers) та ГІС-додатках.
Конвертувати з GEOJSON у KML
Безкоштовний конвертер з GEOJSON у KML у браузері. Миттєво конвертуйте файли на своєму пристрої.
Аналіз та метадані
Операційні системи та аналізатори файлів ідентифікують файли GeoJSON, перевіряючи початкову послідовність бінарних байтів:
Сигнатура заголовка на байтовому рівні (Magic Bytes)
Операційні системи та аналізатори файлів ідентифікують файли GeoJSON, перевіряючи початкову послідовність бінарних байтів:
ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):
7B 0A 20 20 22 74 79 70 65 22 3A 20 22 46 65 61 74 75 72 65ASCII-УЯВЛЕННЯ: {\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 (Поточний) | KML | GPX | SHP |
|---|---|---|---|---|
| Поширення у вебкартографії | 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.
Захисні найкращі практики:
Історичне походження та віхи
Головні переваги та плюси
- Нативний вебстандарт: безпосередньо відображається в об'єкти 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.
Пов'язані пари конвертації GeoJSON
Перетворення векторів GeoJSON у Google KML перекладає легкі масиви координат JSON у структуровані документи XML, адаптовані для Google Earth та Google Maps.
Конвертація файлів Google KML у формат GeoJSON перетворює ієрархічні географічні дані XML на легкий векторний JavaScript Object Notation для сучасних веб-карт.
Конвертація векторних даних GeoJSON у GPX перетворює стандартні географічні JSON-об'єкти у формат на основі XML, оптимізований для фізичних навігаційних пристроїв.