مبدل GeoJSON به Google KML
تبدیل بردارهای GeoJSON به Google KML، آرایههای مختصات JSON سبکوزن را به اسناد XML ساختاریافته و متناسب با Google Earth و Google Maps ترجمه میکند.
مقایسه فرمتها و مشخصات فنی
| مشخصات | GEOJSON | KML |
|---|---|---|
| نوع MIME | application/geo+json | application/vnd.google-earth.kml+xml |
| نوع | geographic vector JSON | geographic XML notation |
| فشردهسازی | none (JSON text) | XML text (KMZ when ZIP compressed) |
| مشخصات استاندارد | IETF RFC 7946 | OGC KML 2.3 |
| هدر بایتهای جادویی | 7B 22 74 79 70 65 22 3A 20 22 ({"type": ") JSON header | 3C 3F 78 6D 6C ... 3C 6B 6D 6C (<kml) |
نمای کلی فرمت و کاربردها
دادههای برداری جغرافیایی اغلب با استفاده از GeoJSON ثبت و به اشتراک گذاشته میشوند زیرا توسعهدهندگان وب و کتابخانههای نقشهبرداری جاوااسکریپت آن را به طور طبیعی پردازش میکنند. با این حال، نرمافزارهای دسکتاپ GIS مانند Google Earth و برنامههای کره زمین سازمانی قدیمی به زبان نشانهگذاری کیهول که به نام KML شناخته میشود، نیاز دارند. ترجمه این فرمتها به محققان میدانی و نقشهبرداران اجازه میدهد تا پلیگونهای مرزی استخراجشده از وب، نقاط تلهمتری پهپادها و مسیرهای دارایی شهرداری را در کرههای زمین مجازی بدون نوشتن اسکریپتهای سفارشی مشاهده کنند. انتقال دادهها از GeoJSON به KML همچنین شکاف بین APIهای وب منبعباز و ابزارهای نقشهبرداری مخاطبپسند را پر میکند. بسیاری از برنامهریزان شهری با استفاده از کتابخانههای Leaflet یا Mapbox که فایلهای GeoJSON را خروجی میدهند، دادهها را جمعآوری میکنند. وقتی ذینفعان میخواهند آن لایههای دقیق را در یک محیط دسکتاپ سهبعدی بررسی کنند، تبدیل برچسبهای هندسی، ویژگیهای استایلدهی و خصوصیات فراداده به گرههای XML تضمین میکند که عناصر بصری مانند آیکونها، عرض خطوط و رنگهای پرکننده به درستی رندر شوند.
مشخصات فنی و تحلیل کدک
GeoJSON از مایل تایپ application/geo+json استفاده میکند که نقاط، خطوط و پلیگونهای جغرافیایی را در داخل نوتیشن شیء جاوااسکریپت متن ساده نمایش میدهد. این فرمت حاوی هیچ بایت جادویی باینری نیست و در عوض به براکتها و جفت کلید-مقدار استاندارد ASCII یا UTF-8 مانند "type": "FeatureCollection" متکی است. برعکس، Google KML از مایل تایپ application/vnd.google-earth.kml+xml استفاده میکند و ویژگیهای فضایی را در داخل تگهای XML مانند <Placemark>، <Point> و <Polygon> ساختار میدهد. در حالی که هیچکدام از فرمتها از فشردهسازی با افت کیفیت به طور بومی در سطح متن استفاده نمیکنند، فایلهای KML میتوانند با استفاده از فشردهسازی استاندارد DEFLATE به آرشیوهای KMZ فشرده شوند تا دادههای برداری سنگین و آیکونهای تصویر محلی را با هم بستهبندی کنند.
سازگاری با سیستمعامل و مرورگر
هر دو فرمت به آرامی در سیستمعاملهای مدرن از جمله ویندوز، مکاواس، لینوکس، iOS و اندروید بارگذاری میشوند. مرورگرهای وب مدرن به طور بومی رشتههای GeoJSON را با استفاده از موتورهای استاندارد جاوااسکریپت تجزیه میکنند، در حالی که Google KML به تجزیهکنندههای تخصصی یا نرمافزار تخصصی زمین دسکتاپ مانند Google Earth Pro نیاز دارد. مرورگرهای تلفن همراه نمیتوانند فایلهای KML خام را به طور مستقیم بدون یک برنامه کمکی یا پیشرندر سمت سرور نمایش دهند.
💡 اطلاعات مفید
هنگام تبدیل مجموعهدادههای بزرگ با هزاران پلیگون پیچیده، فایل GeoJSON منبع خود را پیش از صادر کردن به KML به فایلهای منطقهای کوچکتر تقسیم کنید تا از خرابی حافظه در برنامههای نقشهبرداری مصرفکننده جلوگیری کنید.
مقایسه فرمتها و مشخصات فنی
یک فایل برداری استاندارد ۵ مگابایتی GeoJSON در حدود ۰.۰۵ ثانیه از طریق اتصال فیبر نوری ۱ گیگابیت بر ثانیه، حدود ۰.۴ ثانیه در یک شبکه تلفن همراه استاندارد 5G و حدود ۱ ثانیه در یک اتصال معمولی 4G LTE منتقل میشود.
پرسشهای متداول
چگونه GeoJSON را بدون افت کیفیت به Google KML تبدیل کنیم؟
این تبدیل به شدت بدون افت است زیرا هر دو فرمت مختصات برداری را با استفاده از مقادیر عددی دقیق عرض و طول جغرافیایی ذخیره میکنند. روند ترجمه، کلیدهای GeoJSON را بدون تغییر دقت مختصات به عناصر XML متناظر KML نگاشت میکند، اگرچه ویژگیهای استایلدهی سفارشی ممکن است در صورت خواندن ویژگیهای غیر استاندارد توسط نرمافزار هدف به طور متفاوت، به نگاشت دستی نیاز داشته باشند.
تفاوت بین GeoJSON و Google KML چیست؟
GeoJSON یک فرمت متنی سبکوزن است که بر اساس سینتکس JSON ساخته شده و به طور خاص برای APIهای نقشهبرداری وب و پردازش جاوااسکریپت طراحی شده است. Google KML یک زبان مبتنی بر XML است که برای Google Earth طراحی شده و پشتیبانی توکاری برای گیره ارتفاعی سهبعدی، زاویههای دید دوربین سفارشی، سلسله مراتب پوشههای تو در تو و آیکونهای جاسازیشده ارائه میدهد.