GeoJSON (.geojson)
IETF СтандартGeoJSON е често използван във Web картите, но поддръжката варира. GitHub показва съвместими файлове с ограничения; RFC 7946 задава ред дължина, ширина.
Конвертиране от GEOJSON към KML
Безплатен конвертор от GEOJSON към KML в браузъра. Конвертирайте файлове незабавно на вашето устройство.
Проверка и метаданни
Операционните системи и файловите анализатори идентифицират GeoJSON файлове чрез проверка на началната двоична байтова последователност:
Байтов подпис на заглавката (сигнатурни байтове)
Операционните системи и файловите анализатори идентифицират 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 документ според RFC 7946, който представя географски обекти Feature, FeatureCollection и Geometry |
| Компресия | Некомпресиран текст (лесно се компресира по HTTP с Gzip или Brotli) |
| Поредност на байтовете (Endianness) | Текстов поток UTF-8 |
| Цветови пространства | Не се прилага (географски данни) |
| Канали и структура | Обекти Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection и потребителски свойства |
| Максимални размери | Координатно пространство на World Geodetic System 1984 (WGS 84): дължина от -180 до +180, ширина от -90 до +90 |
| Прозрачност | Няма |
| Поточно предаване и прогресивно зареждане | GeoJSON с разделяне по редове (GeoJSONL / GeoJSONSeq) позволява непрекъснато поточно предаване на милиони обекти |
Техническа сравнителна матрица: GeoJSON спрямо конкуренти
| Технически атрибут | GeoJSON (Текущ) | KML | GPX | SHP |
|---|---|---|---|---|
| Възприемане в уеб картите | Широко използван в уеб картографията; поддръжката зависи от приложението | Стандарт по подразбиране за 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.app.
Анализ на сигурността и вектори на атака към парсера
Свойствата на GeoJSON могат да съдържат произволни данни, въведени от потребителя, които трябва да бъдат почистени преди изобразяване в изскачащи прозорци на карти, за да се предотврати XSS.
Известни вектори на атака
- Междусайтов скриптинг (XSS) чрез неекраниран HTML в свойствата на GeoJSON елементите, визуализирани в подсказките на картата.
- Отказ от услуга чрез дълбоко вложени GeometryCollections или полигони с милиони върхове.
- Фалшифициране на заявки от страна на сървъра (SSRF) чрез отдалечено зареждане на GeoJSON елементи.
Най-добри практики за защита: Почистете всички текстови стойности на свойствата с DOMPurify, преди да ги вмъкнете в изскачащи прозорци на карти.
Исторически произход и етапи
Основни предимства
- Стандарт за уеб среда: преобразува се директно в JavaScript обекти в библиотеките за карти в браузъра (Mapbox GL JS, Leaflet).
- Лесна за четене JSON структура позволява лесно програмно създаване, филтриране и отстраняване на грешки.
- Произволна схема от свойства: прикрепяйте всякакви потребителски дефинирани метаданни (население, име, скорост, приходи) директно към геометрични форми.
Технически ограничения и минуси
- Обемност на текста: координатите с плаваща запетая се съхраняват като поредици от ASCII цифри, което води до по-големи файлови размери от бинарните Shapefiles или FlatGeobuf.
- RFC 7946 изисква строг ред [Географска дължина, Географска ширина], което често обърква разработчиците, свикнали с „Ширина/Дължина".
- Големи полигони с милиони върхове могат да доведат до забавяне на изобразяването на DOM в уеб браузъра.
Интересни технически факти
- Официалният стандарт GeoJSON подрежда координатите като [Географска дължина, Географска ширина] (Декартов ред X, Y), което е точно обратното на обичайния човешки начин на изразяване („Географска ширина, Географска дължина").
- GeoJSON е често използван във Web картите, но поддръжката варира. GitHub показва съвместими файлове с ограничения; RFC 7946 задава ред дължина, ширина.
- RFC 7946 изисква граничните пръстени на полигоните да следват „правилото на дясната ръка": външните пръстени трябва да са ориентирани обратно на часовниковата стрелка.
Често задавани технически въпроси
Защо моите GeoJSON координати са подредени като [географска дължина, географска ширина] вместо [географска ширина, географска дължина]?
GeoJSON е често използван във Web картите, но поддръжката варира. GitHub показва съвместими файлове с ограничения; RFC 7946 задава ред дължина, ширина.
Как мога да конвертирам KML или Shapefile в GeoJSON?
Можете директно в браузъра си да преобразувате за секунди файлове Google Earth KML или Esri Shapefile в чист GeoJSON, готов за уеб, с File2File.app.
Каква е разликата между GeoJSON и Shapefile?
Shapefile продължава да се използва широко за обмен на данни и се поддържа от ГИС софтуер, но структурата му от няколко файла и ограниченията за атрибутите могат да направят GeoJSON или геобаза данни по-подходящи за някои работни процеси.
Свързани двойки за конвертиране на GeoJSON
Конвертирането на GeoJSON вектори в Google KML преобразува компактни JSON масиви от координати в структурирани XML документи, адаптирани за Google Earth и Google Maps.
Конвертирането на Google KML файлове в GeoJSON преобразува йерархични XML географски данни в компактни векторни обекти във формат JavaScript Object Notation за съвременни уеб карти.
Конвертирането на векторни данни от GeoJSON в GPX превежда стандартни географски JSON обекти във XML формат, оптимизиран за физически навигационни устройства.