GeoJSON (.geojson)

IETF استاندارد

نمادگذاری شیء جاوااسکریپت جغرافیایی (GeoJSON) استاندارد جهانی و بومی وب برای کدگذاری ساختارهای داده جغرافیایی است که به طور گسترده در برنامه‌های نقشه‌برداری مدرن وب (مانند Leaflet، Mapbox، OpenLayers) و سیستم‌های اطلاعات جغرافیایی (GIS) استفاده می‌شود.

تبدیل GEOJSON به KML

مبدل رایگان GEOJSON به KML درون مرورگر. فایل‌ها را فورا روی دستگاه خود تبدیل کنید.

بررسی و فراداده

سیستم‌عامل‌ها و تحلیلگرهای فایل، فایل‌های GeoJSON را با بررسی توالی بایت‌های دودویی ابتدایی شناسایی می‌کنند:

انتخاب یا رها کردن فایل‌ها در اینجا

تبدیل ۱۰۰٪ خصوصی در مرورگر - فایل‌ها هرگز دستگاه شما را ترک نمی‌کنند

یا جای‌گذاری کنید Ctrl+V
تضمین حریم خصوصی بدون انتقال شبکه: صفر بایت به سرورهای خارجی آپلود می‌شود. تمام پردازش‌ها به صورت محلی در سندباکس مرورگر شما انجام شد.

امضای هدر در سطح بایت (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
میزان پذیرش در نقشه‌برداری وبپیش‌فرض صددرصد جهانی وب GISپیش‌فرض گوگل ارثپیش‌فرض دستگاه‌های GPS و تناسب انداماستاندارد قدیمی دسکتاپ GIS
ترتیب مختصات[طول جغرافیایی، عرض جغرافیایی] (X, Y)طول جغرافیایی، عرض جغرافیایی، ارتفاععرض جغرافیایی، طول جغرافیاییمختصات X, Y
سبک نگارشکلید-مقادیر تمیز JSONبرچسب‌های طولانی XML (<kml>)برچسب‌های طولانی XML (<gpx>)باینری چندفایلی (.shp, .shx, .dbf)
طرح‌واره ویژگی‌هاشیء ویژگی‌های دلخواه JSONبرچسب‌های طرح‌واره ExtendedDataبرچسب‌های طرح‌واره ثابت GPXستون‌های ثابت dBase IV (.dbf)

حالت‌های رایج خرابی و راهنمای بازیابی هگز

نقاط روی نقشه به جای موقعیت واقعی خود، در اقیانوس نزدیک قطب جنوب ظاهر می‌شوند.

علت ریشه‌ای: مقادیر عرض جغرافیایی و طول جغرافیایی به طور تصادفی در آرایه مختصات جابجا شده‌اند.

بازیابی: موقعیت مختصات [طول، عرض] را با استفاده از مبدل GeoJSON در File2File جابجا کنید.

تحلیل امنیتی و بردارهای حمله تجزیه‌کننده (Parser)

ویژگی‌های GeoJSON می‌توانند حاوی ورودی‌های دلخواه کاربر باشند که باید پیش از رندر شدن در پنجره‌های بازشو (Popup) نقشه، پاکسازی شوند تا از حملات XSS جلوگیری شود.

بردارهای حمله شناخته‌شده

  • اسکریپت‌نویسی میان‌وبگاهی (XSS) از طریق کدهای مخرب HTML در ویژگی‌های عوارض GeoJSON که در راهنماهای نقشه رندر می‌شوند.
  • حمله عدم سرویس‌دهی (DoS) از طریق GeometryCollectionهای عمیقاً توکار یا چندضلعی‌هایی با یک میلیون رأس.
  • جعل درخواست سمت سرور (SSRF) از طریق بارگذاری عوارض GeoJSON از راه دور.

بهترین روش‌های پدافندی:

تاریخچه و نقاط عطف

2016سازمان IETF به طور رسمی فرمت GeoJSON را به عنوان استاندارد RFC 7946 تأیید می‌کند و سیستم‌های مرجع مختصات WGS 84 را الزامی می‌سازد.
2014گیت‌هاب قابلیت رندر کردن نقشه بصری تعاملی بومی را برای تمام فایل‌های با پسوند .geojson معرفی می‌کند.
2008هوارد باتلر، شان گیلیس و جامعه GIS متن‌باز، مشخصات اولیه نسخه ۱.۰ از GeoJSON را منتشر می‌کنند.

مزایا و نقاط قوت کلیدی

  • استاندارد بومی وب: مستقیماً به اشیاء جاوااسکریپت در کتابخانه‌های نقشه‌برداری مرورگر (مانند Mapbox GL JS و Leaflet) نگاشت می‌شود.
  • ساختار JSON قابل خواندن توسط انسان امکان ایجاد، فیلتر و عیب‌یابی برنامه‌نویسی را به راحتی فراهم می‌کند.
  • ططمینان‌پذیری طرح‌واره ویژگی‌ها: امکان الحاق هرگونه ابرداده سفارشی (مانند جمعیت، نام، سرعت، درآمد) مستقیماً به اشکال هندسی.

محدودیت‌ها و معایب فنی

  • حجم زیاد متن: مختصات ممیز شناور را به صورت ارقام اسکی تکرار شده ذخیره می‌کند که منجر به فایل‌های حجیم‌تری نسبت به فایل‌های Shapefile باینری یا FlatGeobuf می‌شود.
  • استاندارد RFC 7946 به شدت ترتیب [طول جغرافیایی، عرض جغرافیایی] را الزامی می‌کند که اغلب توسعه‌دهندگان عادت‌کرده به ترتیب «عرض/طول» را سردرگم می‌سازد.
  • چندضلعی‌های بزرگ با میلیون‌ها رأس می‌توانند باعث کندی رندر شدن DOM در مرورگر وب شوند.

نکات فنی جالب

  • استاندارد رسمی GeoJSON مختصات را به صورت [طول جغرافیایی، عرض جغرافیایی] (ترتیب دکارتی X و Y) مرتب می‌کند که دقیقاً برعکس نحوه بیان گفتاری افراد («عرض جغرافیایی، طول جغرافیایی») است.
  • اگر یک فایل با پسوند .geojson را در گیت‌هاب commit کنید، گیت‌هاب به طور خودکار آن را به عنوان یک نقشه تعاملی و قابل کلیک نمایش می‌دهد.
  • استاندارد RFC 7946 الزامی می‌کند که حلقه‌های مرزی چندضلعی باید از «قانون دست راست» پیروی کنند: حلقه‌های بیرونی باید در جهت خلاف عقربه‌های ساعت رسم شوند.

سوالات فنی متداول

چرا مختصات GeoJSON من به جای [عرض جغرافیایی، طول جغرافیایی] به صورت [طول جغرافیایی، عرض جغرافیایی] مرتب شده‌اند؟

زیرا در ریاضیات و گرافیک کامپیوتری، مختصات همیشه به صورت (X, Y) مشخص می‌شوند. طول جغرافیایی نمایانگر محور افقی X و عرض جغرافیایی نمایانگر محور عمودی Y است.

چگونه می‌توانم KML یا Shapefile را به GeoJSON تبدیل کنم؟

شما می‌توانید فایل‌های Google Earth KML یا Esri Shapefiles را در چند ثانیه و مستقیماً در مرورگر خود با استفاده از File2File.app به GeoJSON تمیز و آماده برای وب تبدیل کنید.

تفاوت بین GeoJSON و Shapefile چیست؟

Shapefile یک فرمت باینری چندفایلی منسوخ شده از دهه ۱۹۹۰ است (.shp، .shx، .dbf). GeoJSON یک فرمت وب باز، مدرن و تک‌فایلی است که با JSON تمیز نوشته شده است.