GeoJSON (.geojson)
IETF СтандартГеографският JavaScript Object Notation (GeoJSON) е универсален, уеб-нативен стандарт за кодиране на географски данни, използван широко в съвременните уеб карти (Leaflet, Mapbox, OpenLayers) и ГИС приложения.
Конвертиране на GEOJSON към KML
Безплатен конвертор от GEOJSON към KML в браузъра. Конвертирайте файлове незабавно на вашето устройство.
Инспектиране и метаданни
Операционните системи и файловите анализатори идентифицират GeoJSON файлове чрез проверка на началната двоична байтова последователност:
Байтов подпис на хедъра (Magic Bytes)
Операционните системи и файловите анализатори идентифицират GeoJSON файлове чрез проверка на началната двоична байтова последователност:
HEX ПОДПИС (ОФСЕТ 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 цифри, което води до по-големи файлови размери от бинарните 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.
Свързани двойки за конвертиране на GeoJSON
Конвертирането на GeoJSON вектори в Google KML превежда леки JSON масиви от координати в структурирани XML документи, адаптирани за Google Earth и Google Maps.
Конвертирането на Google KML файлове в GeoJSON преобразува йерархични XML географски данни в олекотени векторни JavaScript Object Notation обекти за съвременни уеб карти.
Конвертирането на векторни данни от GeoJSON в GPX превежда стандартни географски JSON обекти във формат на базата на XML, оптимизиран за физически навигационни устройства.