فایل GML چیست؟
GML مخفف زبان نشانه گذاری جغرافیایی است که بر اساس مشخصات XML توسعه یافته توسط کنسرسیوم فضایی باز (OGC) است. این فرمت برای ذخیره ویژگی های داده های جغرافیایی برای تبادل بین فرمت های مختلف فایل استفاده می شود. این زبان به عنوان یک زبان مدل سازی برای سیستم های جغرافیایی و همچنین یک قالب تبادل باز برای تراکنش های جغرافیایی در اینترنت عمل می کند.
فرمت فایل GML
مانند اکثر گرامرهای مبتنی بر XML، گرامر دو بخش دارد - طرحی که سند را توصیف می کند و سند نمونه ای که حاوی داده های واقعی است. یک سند GML با استفاده از یک طرحواره GML توصیف می شود. این به کاربران و توسعه دهندگان اجازه می دهد تا مجموعه داده های جغرافیایی عمومی را که حاوی نقاط، خطوط و چند ضلعی هستند، توصیف کنند. با استفاده از طرحواره های کاربردی، کاربران می توانند به جای نقاط، خطوط و چندضلعی ها به جاده ها، بزرگراه ها و پل ها مراجعه کنند.
شایان ذکر است که GML نباید برای نمایش داده های مکانی روی نقشه ها تفسیر شود. نمایش محتوای GML با هدفی که GML برای آن ایجاد شده است متفاوت است. به طور خلاصه، GML شبیه XML است زیرا فقط برای نگهداری محتویات فضایی مورد استفاده قرار می گیرد که می تواند توسط برنامه های نقشه برداری برای اهداف نمایش استفاده شود.
تشکیل محتوا در GML
GML represents spatial data using features which is a list of properties and geometries. A Property has a name, type and value description. Geometries are composed of basic geometry building blocks such as:
نکته ها
خطوط
منحنی ها
سوفرس ها و
چند ضلعی ها
نسخه های آینده GML برای پشتیبانی از هندسه سه بعدی و همچنین روابط توپولوژیکی بین ویژگی ها برنامه ریزی شده است.
رمزگذاری GML در حال حاضر ویژگی های بسیار پیچیده ای را امکان پذیر می کند. برای مثال یک ویژگی می تواند از ویژگی های دیگر تشکیل شده باشد. بنابراین، یک ویژگی واحد مانند فرودگاه ممکن است از ویژگیهای دیگری مانند راههای تاکسی، باند فرودگاه، آویزها و پایانههای هوایی تشکیل شده باشد. هندسه یک ویژگی جغرافیایی نیز می تواند از عناصر هندسی زیادی تشکیل شده باشد. بنابراین، یک ویژگی هندسی پیچیده میتواند از ترکیبی از انواع هندسه شامل نقاط، رشتههای خطی و چندضلعی تشکیل شود.
مثال ها
GML 1.0 و 2.0 اشیاء Polygons، Points و LineString را به صورت زیر رمزگذاری می کنند:
<gml:Polygon>
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates>0,0 100,0 100,100 0,100 0,0</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
<gml:Point>
<gml:coordinates>100,200</gml:coordinates>
</gml:Point>
<gml:LineString>
<gml:coordinates>100,200 150,300</gml:coordinates>
</gml:LineString>