ما هو ملف GeoJSON؟
GeoJSON هو تنسيق قائم على JSON مصمم لتمثيل المعالم الجغرافية بسماتها غير المكانية. يحدد هذا التنسيق كائنات JSON (JavaScript Object Notation) المختلفة ونمط ربطها. يمثل تنسيق JSON معلومات مجمعة حول المعالم الجغرافية ونطاقاتها المكانية وخصائصها. قد يشير كائن من هذا الملف إلى هندسة (Point ، LineString ، Polygon) ، أو معلم أو مجموعة من المعالم. تعكس المعالم العناوين والأماكن كشوارع النقطة والطرق الرئيسية والحدود كسلاسل خط والبلدان والمقاطعات ومناطق الأرض كمضلعات. باستخدام GeoJSON ، يمكن لتطبيقات التوجيه والملاحة المتنقلة المختلفة أن تشير إلى تغطية خدماتها. امتداد GeoJSON هو TopoJSON وهو أصغر حجمًا ويشفر الهيكل الجغرافي المكاني.
نبذة تاريخية
قامت فرقة عمل هندسة الإنترنت (IETF) ، بالاشتراك مع مؤلفي التنسيق ، بتشكيل GeoJSON WG لإصدار GeoJSON في أبريل 2015. استبدال 2008 مواصفات GeoJSON ، RFC 7946 ، المواصفات القياسية الجديدة لتنسيق GeoJSON المنشورة في أغسطس 2016.
تنسيق ملف GeoJSON
تنسيق
التنسيق هو العنصر الأساسي لأي بيانات جغرافية. هذا بعد واحد (خط الطول ، خط العرض) يمثل رقمًا واحدًا (تنسيق عشري) وأحيانًا يسجل إحداثيًا للارتفاع أيضًا. الوقت هو بُعد أيضًا ، لكن تعقيده يجعل من الصعب تسجيله على أنه إحداثي. يتم تنسيق الإحداثيات في كل من JSON GeoJSON مثل الأرقام.
موقع
مصفوفة مرتبة من الإحداثيات تمثل الموضع. هذه هي أصغر وحدة يمكن أن تشير إلى نقطة على الأرض.
“[خط الطول ، خط العرض ، الارتفاع]”
قبل إصدار المواصفات الحالية ، سمح GeoJSON بتسجيل ثلاثة إحداثيات لكل موقع ولكن غير مسموح به بواسطة المواصفات الجديدة.
الهندسة
الأشكال الهندسية هي أشكال بسيطة (نقاط ومنحنيات وأسطح) في GeoJSON والتي تتكون من نوع ومجموعة من الإحداثيات. النقطة هي أبسط هندسة تمثل موضعًا واحدًا
{" النوع ":" النقطة "،" الإحداثيات ": [0 ، 0]}
السلاسل
يتم استخدام مكانين متصلين على الأقل لتمثيل خط.
{" النوع ":" LineString "،" الإحداثيات ": [[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"
}
}
]
}
تدعم الكثير من حزم برامج الخرائط ونظم المعلومات الجغرافية GeoJSON بما في ذلك برنامج GeoDjango و OpenLayers و Geoforge. كما أنه متوافق مع PostGIS و Mapnik. تدعم خدمات API لخرائط Google و yahoo و Bing أيضًا GeoJSON.