GeoJSON (.geojson)

IETF תקן

סימון אובייקטים גיאוגרפיים ב-JavaScript (GeoJSON) הוא תקן אוניברסלי ומותאם לרשת עבור קידוד מבני נתונים גיאוגרפיים, הנמצא בשימוש נרחב ביישומי מיפוי מודרניים באינטרנט (כגון Leaflet, Mapbox, OpenLayers) ובמערכות מידע גיאוגרפיות (GIS).

המר GEOJSON ל-KML

ממיר חינמי מ-GEOJSON ל-KML פועל בדפדפן. המר קבצים באופן מיידי במכשיר שלך.

בדיקה ומטא-דאטה

מערכות הפעלה ומנתחי קבצים מזהים קבצי GeoJSON על ידי בדיקת רצף הבייטים הבינארי הראשוני:

בחר או גרור קבצים לכאן

המרה פרטית ב-100% בתוך הדפדפן - הקבצים לעולם אינם עוזבים את המכשיר שלך

או הדבק Ctrl+V
הבטחת פרטיות ללא העברה ברשת: 0 בייט הועלו לשרתים חיצוניים. כל העיבוד מתבצע באופן מקומי בארגז החול של הדפדפן שלך.

חתימת כותרת ברמת הבייט (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 (נוכחי)KMLGPXSHP
אימוץ במיפוי רשתברירת מחדל אוניברסלית של 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.

השיטות המומלצות להגנה:

היסטוריה ואבני דרך

2016ארגון IETF מתקנן באופן רשמי את פורמט GeoJSON בתור תקן RFC 7946, המחייב מערכות ייחוס קואורדינטות מסוג WGS 84.
2014GitHub מציגה רינדור מפה ויזואלי אינטראקטיבי מובנה עבור כל קבצי ה-.geojson.
2008הווארד באטלר, שון גילס וקהילת ה-GIS בקוד פתוח מפרסמים את מפרט ה-GeoJSON 1.0 המקורי.

יתרונות מרכזיים

  • תקן רשת מקורי: ממופה ישירות לאובייקטי 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 נקי.