مبدل KML گوگل به GeoJSON
تبدیل نمادگذاری XML جغرافیایی Google KML به فرمت برداری GeoJSON به مرورگرهای وب مدرن و کتابخانههای نقشهبرداری اجازه میدهد دادههای مکانی را بهصورت بومی و بدون نیاز به نرمافزارهای تخصصی دسکتاپ رندر کنند.
مقایسه فرمتها و مشخصات فنی
| مشخصات | KML | GEOJSON |
|---|---|---|
| نوع MIME | application/vnd.google-earth.kml+xml | application/geo+json |
| نوع | geographic XML notation | geographic vector JSON |
| فشردهسازی | XML text (KMZ when ZIP compressed) | none (JSON text) |
| مشخصات استاندارد | OGC KML 2.3 | IETF RFC 7946 |
| هدر بایتهای جادویی | 3C 3F 78 6D 6C ... 3C 6B 6D 6C (<kml) | 7B 22 74 79 70 65 22 3A 20 22 ({"type": ") JSON header |
نمای کلی فرمت و کاربردها
تحلیلگران سیستمهای اطلاعات جغرافیایی (GIS)، توسعهدهندگان وب و نقشهکشان اغلب نیاز دارند دادههای مکانی را از ابزارهای نقشهبرداری قدیمی به پشتههای توسعه وب مدرن منتقل کنند. فرمت Google KML که توسط کنسرسیوم اوپنجئوپسپشیال استانداردسازی شده، وابستگی زیادی به کرههای مجازی دسکتاپ مانند Google Earth دارد. در حالی که KML پوشههای تودری پیچیده، آیکونهای سفارشی و برجستهسازیهای زمین سهبعدی را مدیریت میکند، برنامههای وب ساختهشده با Leaflet، Mapbox یا OpenLayers فرمت GeoJSON را ترجیح میدهند. تبدیل فایلهای KML به GeoJSON پردازش بومی جاوا اسکریپت را آزاد میکند. مرورگرهای وب دستور زبان JSON را فورا با استفاده از عملکردهای موتور داخلی تجزیه میکنند. این تبدیل سربار تجزیه درختان پیچیده XML را در مرورگر از بین میبرد و تاخیر رندر را هنگام بارگذاری هزاران ویژگی مکانی مانند نقاط، خطوط و چندضلعیها روی یک نقشه تعاملی کاهش میدهد.
مشخصات فنی و تحلیل کدک
فایلهای Google KML از نوع MIME با پسوند application/vnd.google-earth.kml+xml استفاده میکنند و بر اساس ساختار متن XML هستند. فایلهای KML فشردهنشده حاوی هیدرهای اعلامیه استاندارد XML هستند. هنگامی که این فایلها در کانتینرهای KMZ فشرده میشوند، از فرمت آرشیو استاندارد ZIP با امضای بایت جادویی `0x50 0x4B 0x03 0x04` استفاده میکنند که فایل داخلی doc.kml و داراییهای مرتبط را در خود نگه میدارد. در مقابل، GeoJSON از نوع MIME با پسوند application/geo+json استفاده میکند و متن فشردهنشدهای است که به عنوان یک شیء دقیق نمادگذاری شیء جاوا اسکریپت قالببندی شده است. GeoJSON دارای مشخصات RFC 7946 است که مستلزم آن است مختصات از سیستم مرجع مختصات جغرافیایی WGS 84 با مقادیر طول و عرض جغرافیایی استفاده کنند و از یک ساختار شیء هندسی صریح حاوی انواع مختلفی مانند Point، LineString و Polygon بهره ببرد.
سازگاری با سیستمعامل و مرورگر
هر دو فرمت از پشتیبانی گستردهای در سیستمعاملهای مدرن از جمله ویندوز، macOS، لینوکس، iOS و اندروید برخوردارند. KML به طور بومی توسط Google Earth، ArcGIS و QGIS پشتیبانی میشود. GeoJSON به طور بومی توسط مرورگرهای وب مدرن، زمانهای اجرای Node.js و فریمورکهای نقشهبرداری وب مانند Leaflet و Mapbox GL JS پشتیبانی میشود و آن را به فرمت تبادل استاندارد برای برنامههای GIS مبتنی بر وب تبدیل میکند.
💡 اطلاعات مفید
هنگام تبدیل فایلهای KML حاوی استایلهای پیچیده، URLهای آیکون سفارشی یا پوششهای زمینی جاسازیشده به GeoJSON، به خاطر داشته باشید که GeoJSON استاندارد فقط مختصات هندسی و ویژگیهای صفات پایه را ذخیره میکند. استایلهای بصری پیچیده ممکن است در طول تبدیل حذف شوند و شما را ملزم کنند که لایهها را با استفاده از CSS یا برگههای استایل کتابخانه نقشه مجدداً استایلدهی کنید.
مقایسه فرمتها و مشخصات فنی
یک فایل KML معمولی ۵ مگابایتی حاوی مرزهای برداری دقیق در حدود ۱.۰ ثانیه روی اتصال استاندارد 4G (۵۰ مگابیت بر ثانیه)، 0.2 ثانیه روی اتصال 5G (۲۵۰ مگابیت بر ثانیه) و عملاً به صورت آنی روی شبکه فیبر نوری (۱ گیگابیت بر ثانیه) منتقل میشود. از آنجا که GeoJSON از متون ساده JSON استفاده میکند، اندازه فایل تبدیلشده تقریباً مشابه KML فشردهنشده باقی میماند و سرعت انتقال شبکه سریع را حفظ میکند.
پرسشهای متداول
چگونه میتوان Google KML را بدون افت کیفیت به GeoJSON تبدیل کرد؟
از آنجا که دادههای مختصات جغرافیایی از مقادیر عددی استفاده میکنند، تبدیل از مختصات XML فایل KML به آرایههای مختصات GeoJSON از نظر دقت مکانی کاملاً بدون افت است. با این حال، اگر فایل KML شما شامل برجستهسازیهای سهبعدی پیچیده، دیدگاههای تخصصی دوربین یا ساختارهای پوشه تودری باشد، آن عناصر استایل و سلسله مراتب سازمانی ممکن است از بین بروند زیرا GeoJSON فقط هندسه و ویژگیها را استانداردسازی میکند.
تفاوت بین Google KML و GeoJSON چیست؟
Google KML یک نمادگذاری مبتنی بر XML است که برای تجسم جغرافیایی طراحی شده است و از پوشههای سلسله مراتبی، آیکونهای سفارشی و عناصر سهبعدی پشتیبانی میکند و میتواند در یک کانتینر KMZ فشرده شود. GeoJSON یک فرمت سبکوزن و متن ساده JSON است که به طور خاص برای رمزگذاری ساختارهای داده جغرافیایی و ویژگیهای غیرمکانی آنها برای برنامههای وب ساخته شده است.