GeoJSON (.geojson)
IETF תקןסימון אובייקטים גיאוגרפיים ב-JavaScript (GeoJSON) הוא תקן אוניברסלי ומותאם לרשת עבור קידוד מבני נתונים גיאוגרפיים, הנמצא בשימוש נרחב ביישומי מיפוי מודרניים באינטרנט (כגון Leaflet, Mapbox, OpenLayers) ובמערכות מידע גיאוגרפיות (GIS).
המר 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 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% ל-GIS ברשת | ברירת המחדל של 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.
ניתוח אבטחה ווקטורי התקפה על מנתחים (Parsers)
מאפייני GeoJSON עשויים להכיל קלט משתמש שרירותי שיש לנקות לפני הרינדור בחלונות קופצים במפה כדי למנוע מתקפות XSS.
ווקטורי תקיפה ידועים
- סקריפטים חוטי-אתרים (XSS) באמצעות HTML שלא עבר הבדלה במאפייני ה-GeoJSON המוצגים בחלוניות המידע של המפה.
- מניעת שירות (DoS) באמצעות אובייקטי GeometryCollection מקוננים לעומק או פוליגונים בעלי מיליוני קודקודים.
- זיוף בקשות בצד השרת (SSRF) באמצעות טעינה מרחוק של מאפייני GeoJSON.
השיטות המומלצות להגנה:
היסטוריה ואבני דרך
יתרונות מרכזיים
- תקן רשת מקורי: ממופה ישירות לאובייקטי JavaScript בספריות מיפוי בדפדפן (כמו Mapbox GL JS ו-Leaflet).
- מבנה JSON קריא לבני אדם המאפשר יצירה, סינון וניפוי שגיאות תכנותיים בקלות רבה.
- סכמת מאפיינים שרירותית: צירוף כל מטא-דאטה מותאם אישית (אוכלוסייה, שם, מהירות, הכנסות) ישירות לצורות הגיאומטריות.
מגבלות טכניות וחסרונות
- מלל טקסטואלי מרובה: שמירת קואורדינטות בנקודה צפה כספרות ASCII חוזרות, המובילה לקבצים גדולים יותר בהשוואה ל-Shapefiles בינאריים או ל-FlatGeobuf.
- תקן RFC 7946 מחייב בקפדנות סדר [אורך, רוחב] (Longitude, Latitude), דבר המבלבל לעתים קרובות מפתחים הרגילים לסדר 'קו רוחב/קו אורך'.
- פוליגונים גדולים עם מיליוני קודקודים עלולים לגרום להאטה ברינדור ה-DOM של דפדפן האינטרנט.
עובדות טכניות מעניינות
- תקן ה-GeoJSON הרשמי מסדר את הקואורדינטות בסדר [קו אורך, קו רוחב] (סדר קרטזיאני X, Y), וזהו בדיוק ההפך מהאופן שבו בני אדם אומרים זאת בדרך כלל ('קו רוחב, קו אורך').
- אם תבצע קומיט לקובץ .geojson ב-GitHub, המערכת תרנדר אותו אוטומטית כמפה אינטראקטיבית שניתנת ללחיצה.
- תקן RFC 7946 דורש שטבעות הגבול של פוליגונים יעקבו אחר 'כלל יד ימין': טבעות חיצוניות חייבות להיות מפותלות נגד כיוון השעון.
שאלות טכניות נפוצות
מדוע קואורדינטות ה-GeoJSON שלי מסודרות כ-[אורך, רוחב] (longitude, latitude) במקום [רוחב, אורך]?
מכיוון שבמתמטיקה ובגרפיקה ממוחשבת, קואורדינטות מצוינות תמיד כ-(X, Y). קו האורך מייצג את ציר ה-X האופקי, וקו הרוחב מייצג את ציר ה-Y האנכי.
כיצד אוכל להמיר KML או Shapefile ל-GeoJSON?
באפשרותך להמיר קובצי Google Earth KML או Esri Shapefiles ל-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 המותאם למכשירי ניווט פיזיים.