فایل GeoJSON چیست؟
GeoJSON یک فرمت مبتنی بر JSON است که برای نشان دادن ویژگیهای جغرافیایی با ویژگیهای غیر مکانی آنها طراحی شده است. این فرمت اشیاء مختلف JSON (JavaScript Object Notation) و مد پیوستن آنها را تعریف می کند. فرمت JSON اطلاعات جمعی در مورد ویژگی های جغرافیایی، گستره فضایی و ویژگی های آنها را نشان می دهد. یک شی از این فایل ممکن است یک هندسه (نقطه، رشته خط، چند ضلعی)، یک ویژگی یا مجموعه ای از ویژگی ها را نشان دهد. این ویژگیها آدرسها و مکانها را بهعنوان خیابانهای نقطه، جادههای اصلی و مرزها بهعنوان رشتههای خطی و کشورها، استانها و مناطق خشکی را بهعنوان چندضلعی منعکس میکنند. با استفاده از GeoJSON، برنامه های مسیریابی و ناوبری تلفن همراه مختلف می توانند پوشش خدمات خود را نشان دهند. پسوند GeoJSON TopoJSON است که از نظر اندازه کوچکتر است و توپولوژی جغرافیایی مکانی را رمزگذاری می کند.
تاریخچه مختصر
The Internet Engineering Task Force (IETF), in association with the format authors, shaped a GeoJSON WG to release GeoJSON in April 2015. Replacing the 2008 GeoJSON specification, RFC 7946, the new standard specification of the GeoJSON format published in August 2016.
فرمت فایل GeoJSON
هماهنگ كردن
مختصات عنصر اساسی هر داده جغرافیایی است. این یک بعد منفرد (طول و عرض جغرافیایی) است که یک عدد واحد را نشان می دهد (قالب اعشاری) و گاهی اوقات مختصاتی را برای ارتفاع نیز ثبت می کند. زمان نیز یک بعد است اما پیچیدگی آن ثبت آن را به عنوان مختصات دشوار می کند. مختصات در هر دو JSON GeoJSON مانند اعداد قالب بندی می شوند.
سمت
یک آرایه مرتب از مختصات نشان دهنده position است. این کوچکترین واحدی است که می تواند نقطه ای روی زمین را نشان دهد.
[طول جغرافیایی، عرض جغرافیایی، ارتفاع].
قبل از انتشار مشخصات فعلی، GeoJSON اجازه ثبت سه مختصات در هر موقعیت را داشت اما در مشخصات جدید مجاز نیست.
هندسه
هندسه ها اشکال ساده (نقاط، منحنی ها و سطوح) در GeoJSON هستند که از یک نوع و مجموعه ای از مختصات تشکیل شده اند. نقطه ساده ترین هندسه ای است که یک موقعیت واحد را نشان می دهد
{ type: Point, Coordinates: [0, 0] }
رشته های خطی
حداقل دو مکان متصل برای نشان دادن یک خط استفاده می شود.
{ type: LineString, coordinates: [[10, 30], [10, 10]] }
رشته های نقطه ای و خطی دو دسته ساده هندسه هستند. هر دو نوع هندسه بسیاری از قوانین هندسی را آزار نمی دهند. یک نقطه را می توان در مکانی در هر جایی نشان داد، و یک خط می تواند بیش از یک نقطه داشته باشد، حتی اگر نقاط خود به خود تلاقی داشته باشند.
چند ضلعی
هندسه های GeoJSON در چند ضلعی بسیار پیچیده تر به نظر می رسند. چند ضلعی ها دارای قسمت های داخلی و خارجی هستند و می توانند سوراخ هایی در داخل داشته باشند.
{
"type": "Polygon",
"Coordinates": [
[
[30, 10], [10, 10], [10, 0], [20, 40]
]
]
}
در مقایسه با LineStrings، در چند ضلعی ها، لیست مختصات یک سطح تو در تو است و می تواند دارای برش هایی مانند دونات باشد.
سطح مختصات
در قالب GeoJSON، برای ویژگی مختصات، چهار سطح عمق وجود دارد.
امکانات
هندسه ها بخش مرکزی GeoJSON هستند، بنابراین، داده های دنیای واقعی بیشتر از این اشکال ساده با هویت و ویژگی ها هستند. ویژگی ها هندسه و همچنین خواص آنها را ثبت می کند.
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [20, 10]
},
"properties": {
"name": "fortune island"
}
}
ویژگیهای یک ویژگی میتواند نوعی شیء JSON باشد که حاوی نگاشتهای مقدار کلید تک عمقی باشد.
مجموعه ویژگی
در سطح بالای فایلهای GeoJSON، FeatureCollection رایجترین چیزی است که به نظر میرسد:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [20, 10]
},
"properties": {
"name": "null island"
}
}
]
}
بسیاری از بسته های نرم افزار نقشه برداری و GIS از GeoJSON از جمله نرم افزار GeoDjango، OpenLayers و Geoforge پشتیبانی می کنند. همچنین با PostGIS و Mapnik سازگار است. سرویس های API گوگل، یاهو و نقشه های بینگ نیز از GeoJSON پشتیبانی می کنند.