GeoJSON (.geojson)
IETF استانداردنمادگذاری شیء جاوااسکریپت جغرافیایی (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 |
|---|---|---|---|---|
| میزان پذیرش در نقشهبرداری وب | پیشفرض صددرصد جهانی وب 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 از راه دور.
بهترین روشهای پدافندی:
تاریخچه و نقاط عطف
مزایا و نقاط قوت کلیدی
- استاندارد بومی وب: مستقیماً به اشیاء جاوااسکریپت در کتابخانههای نقشهبرداری مرورگر (مانند 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 تمیز نوشته شده است.
جفتهای تبدیل مرتبط با GeoJSON
تبدیل بردارهای GeoJSON به Google KML، آرایههای مختصات JSON سبکوزن را به اسناد XML ساختاریافته و متناسب با Google Earth و Google Maps ترجمه میکند.
تبدیل نمادگذاری XML جغرافیایی Google KML به فرمت برداری GeoJSON به مرورگرهای وب مدرن و کتابخانههای نقشهبرداری اجازه میدهد دادههای مکانی را بهصورت بومی و بدون نیاز به نرمافزارهای تخصصی دسکتاپ رندر کنند.
تبدیل دادههای برداری GeoJSON به GPX، اجزای استاندارد JSON جغرافیایی را به یک فرمت مبتنی بر XML بهینهسازیشده برای دستگاههای ناوبری فیزیکی تبدیل میکند.