GeoJSON (.geojson)
IETF תקןGeoJSON נפוץ במפות רשת, אך התמיכה משתנה. GitHub מציג קבצים נתמכים עם מגבלות; RFC 7946 קובע אורך גאוגרפי לפני רוחב.
המר 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 65ייצוג ASCII: {\n "type": "Feature
תקינה: IETF RFC 7946
מפרט טכני
| מבנה המכולה | מסמך JSON לפי RFC 7946, המייצג מאפיינים גאוגרפיים, אוספי מאפיינים וגאומטריות |
| דחיסה | טקסט לא דחוס (אפשר לדחוס בקלות בהעברה ב-HTTP באמצעות Gzip או Brotli) |
| סדר בתים (Endianness) | זרם טקסט בקידוד UTF-8 |
| מרחבי צבע | לא רלוונטי (נתונים גאוגרפיים) |
| ערוצים ומבנה | נקודות, ריבוי נקודות, קווים, ריבוי קווים, מצולעים, ריבוי מצולעים, אוספי גאומטריות ומאפיינים מותאמים אישית |
| ממדים מרביים | מערכת הקואורדינטות WGS 84: קו אורך (-180 עד +180), קו רוחב (-90 עד +90) |
| שקיפות | אין |
| הזרמה ופרוגרסיביות | GeoJSON מופרד בשורות (GeoJSONL / GeoJSONSeq) מאפשר להזרים ברציפות מיליוני מאפיינים |
מטריצת השוואה טכנית: GeoJSON מול מתחרים
| תכונה טכנית | GeoJSON (נוכחי) | KML | GPX | SHP |
|---|---|---|---|---|
| אימוץ במיפוי רשת | נפוץ במיפוי ברשת; התמיכה משתנה בין יישומים | ברירת המחדל של Google Earth | ברירת המחדל למכשירי GPS וכושר | תקן ותיק ל-GIS שולחני |
| סדר קואורדינטות | [קו אורך, קו רוחב] (X, Y) | קו אורך, קו רוחב, גובה | קו רוחב, קו אורך | קואורדינטות X, Y |
| סגנון תחביר | מפתחות-ערכים נקיים ב-JSON | תגיות XML מרובות מלל (<kml>) | תגיות XML מרובות מלל (<gpx>) | קבצים בינאריים מרובים (.shp, .shx, .dbf) |
| סכמת מאפיינים | אובייקט מאפייני JSON שרירותי | תגיות סכמה של ExtendedData | תגיות סכמה קבועות של GPX | עמודות קבועות של dBase IV (.dbf) |
מצבי השחתה נפוצים ומדריך שחזור הקסדצימלי (Hex)
נקודות המפה מופיעות באוקיינוס ליד אנטארקטיקה במקום במיקומן האמיתי.
גורם שורש: ערכי קו הרוחב וקו האורך הוחלפו בטעות במערך הקואורדינטות.
שחזור: החלף בחזרה את מיקומי הקואורדינטות [lon, lat] באמצעות ממיר ה-GeoJSON של File2File.app.
ניתוח אבטחה ווקטורי תקיפה נגד מנתחי פורמטים (parsers)
מאפייני GeoJSON עשויים להכיל קלט משתמש שרירותי שיש לנקות לפני הרינדור בחלונות קופצים במפה כדי למנוע מתקפות XSS.
ווקטורי תקיפה ידועים
- סקריפטים חוצי אתרים (XSS) באמצעות HTML שלא עבר ניקוי במאפייני GeoJSON המוצגים בחלוניות המידע של המפה.
- מניעת שירות (DoS) באמצעות אובייקטי GeometryCollection מקוננים לעומק או פוליגונים בעלי מיליוני קודקודים.
- זיוף בקשות בצד השרת (SSRF) באמצעות טעינה מרחוק של מאפייני GeoJSON.
שיטות מומלצות להגנה: נקה את כל מחרוזות הטקסט של המאפיינים באמצעות DOMPurify לפני הוספה לחלונות קופצים במפה.
היסטוריה ואבני דרך
יתרונות מרכזיים
- תקן רשת מקורי: ממופה ישירות לאובייקטי JavaScript בספריות מיפוי בדפדפן (כמו Mapbox GL JS ו-Leaflet).
- מבנה JSON קריא לבני אדם המאפשר יצירה, סינון וניפוי שגיאות תכנותיים בקלות רבה.
- סכמת מאפיינים שרירותית: צירוף כל מטא-דאטה מותאם אישית (אוכלוסייה, שם, מהירות, הכנסות) ישירות לצורות הגיאומטריות.
מגבלות טכניות וחסרונות
- מלל טקסטואלי מרובה: שמירת קואורדינטות בנקודה צפה כספרות ASCII חוזרות, המובילה לקבצים גדולים יותר בהשוואה ל-Shapefiles בינאריים או ל-FlatGeobuf.
- תקן RFC 7946 מחייב בקפדנות סדר [אורך, רוחב] (Longitude, Latitude), דבר המבלבל לעתים קרובות מפתחים הרגילים לסדר 'קו רוחב/קו אורך'.
- פוליגונים גדולים עם מיליוני קודקודים עלולים לגרום להאטה ברינדור ה-DOM של דפדפן האינטרנט.
עובדות טכניות מעניינות
- תקן ה-GeoJSON הרשמי מסדר את הקואורדינטות בסדר [קו אורך, קו רוחב] (סדר קרטזיאני X, Y), וזהו בדיוק ההפך מהאופן שבו בני אדם אומרים זאת בדרך כלל ('קו רוחב, קו אורך').
- GeoJSON נפוץ במפות רשת, אך התמיכה משתנה. GitHub מציג קבצים נתמכים עם מגבלות; RFC 7946 קובע אורך גאוגרפי לפני רוחב.
- תקן RFC 7946 דורש שטבעות הגבול של פוליגונים יפעלו לפי 'כלל יד ימין': יש לכוון את הטבעות החיצוניות נגד כיוון השעון.
שאלות טכניות נפוצות
מדוע קואורדינטות ה-GeoJSON שלי מסודרות כ-[אורך, רוחב] (longitude, latitude) במקום [רוחב, אורך]?
GeoJSON נפוץ במפות רשת, אך התמיכה משתנה. GitHub מציג קבצים נתמכים עם מגבלות; RFC 7946 קובע אורך גאוגרפי לפני רוחב.
כיצד אוכל להמיר KML או Shapefile ל-GeoJSON?
באפשרותך להמיר קובצי Google Earth KML או Esri Shapefiles ל-GeoJSON נקי המוכן לווב תוך שניות באמצעות File2File.app ישירות בדפדפן שלך.
מה ההבדל בין GeoJSON לבין Shapefile?
Shapefile עדיין נמצא בשימוש נרחב להעברת נתונים ונתמך בתוכנות GIS, אך המבנה שלו הכולל כמה קבצים ומגבלות המאפיינים עשויים להפוך את GeoJSON או מסד נתונים גאוגרפי למתאימים יותר לחלק מתהליכי העבודה.
זוגות המרה קשורים ל-GeoJSON
המרת וקטורי GeoJSON ל-Google KML מתרגמת מערכי קואורדינטות JSON קלי משקל למסמכי XML מובנים המותאמים ל-Google Earth ו-Google Maps.
המרת קבצי Google KML ל-GeoJSON הופכת נתונים גיאוגרפיים בפורמט XML היררכי לנתוני וקטור קלילים בפורמט JavaScript Object Notation עבור מפות אינטרנט מודרניות.
המרת נתוני וקטור מסוג GeoJSON לפורמט GPX מתרגמת אובייקטי JSON גיאוגרפיים סטנדרטיים לפורמט מבוסס XML המותאם למכשירי ניווט פיזיים.