تحويل بيانات المتجه الخاصة بنظم المعلومات الجغرافية إلى KML

Mano Marks، فريق واجهات برمجة تطبيقات Google الجغرافية
أيلول (سبتمبر) 2009

الغرض

يرشدك هذا البرنامج التعليمي إلى أساسيات تحويل بيانات المتجه لنظم المعلومات الجغرافية إلى ملف KML باستخدام مكتبة البرامج مفتوحة المصدر لـ OGR. على الرغم من إمكانية استخدام هذه المكتبات مع معظم ملفات GIS، سيركز هذا البرنامج التعليمي على التعامل مع ملفات أشكال ESRI.

المقدمة

تتوفر البيانات الجغرافية بعدة أشكال على الويب. KML هو أحد تنسيقات الملفات الأكثر انتشارًا، ولكن يتم استخدام العديد من أنواع الملفات الأخرى أيضًا. تستخدم الشركات الكبرى والحكومات والمنظمات غير الحكومية أنظمة المعلومات الجغرافية لإنشاء خرائطها، إلى جانب تنسيقات الملفات المتخصصة. وغالبًا ما تتطلب هذه التطبيقات تدريبًا متخصصًا أو قدرًا كبيرًا من الوقت على الأقل للتعلم. يمكن أن تكون الوحدات الإعلانية المملوكة مكلفة جدًا. ومن ناحية أخرى، فهي فعالة للغاية وتوفّر مجموعة غنية من أدوات تصميم الخرائط لمصمم الخرائط المحترف.

تفصح العديد من الجهات الحكومية عن جزء من بيانات نظم المعلومات الجغرافية الخاصة بها للاستخدام العام. تسهّل بوابات مثل Data.gov ونظام المعلومات الجغرافية في ماساتشوستس وDataSF العثور على البيانات لمجتمعاتهم. تصف هذه المقالة كيفية تحويل بيانات المتجه - وهي بيانات تتكون من أشكال هندسية بسيطة مثل النقاط والخطوط والمضلعات - إلى ملف KML. سيمنحك هذا إمكانية الوصول إلى مجموعة متنوعة من أنواع البيانات المختلفة، بما في ذلك:

  • بيانات المناطق التي تمثل حدود إنشاء المناطق
  • بيانات الحوادث، مثل تقارير الجرائم
  • بيانات الحدود لحدود البلديات والولايات والدول والأقاليم وما إلى ذلك.
  • بيانات الطريق، بما في ذلك الطرق التي تم التخطيط لها والطرق الحالية
  • تصاريح إنشاءات تشير إلى مكان إصدار التصاريح
  • البيانات الصحية، مثل وصف أماكن حدوث حالات تفشي الإنفلونزا

هناك العديد من التطبيقات الممتازة لإجراء تحويل البيانات، مثل Google Earth Pro وshp2kml وKML2KML وArc2Earth وغير ذلك الكثير. ستركز هذه المقالة على تحويل بيانات المتجه إلى ملف KML للاستخدام في Google Earth أو خرائط Google، وذلك باستخدام الأدوات مفتوحة المصدر مكتبة البيانات الجغرافية المكانية(GDAL) من سطر الأوامر، وربما تكون مصدر إلهامك لدمج هذه المكتبات في تطبيقاتك الخاصة.

ملاحظة حول أنواع الملفات

توجهك هذه المقالة بالخطوات اللازمة عند تحويل ملفات ESRI shapefiles إلى KML، ولكن يمكن استخدام أدوات GDAL، لا سيما OGR، للتحويل من مجموعة متنوعة من أنواع الملفات، بما في ذلك قواعد بيانات CSV وPostGRES/PostGIS ومجموعة متنوعة من التنسيقات الأخرى. معظم تنسيقات البيانات الرئيسية متاحة. إذا وجدت تنسيقًا غير متوافق، يمكنك كتابة برنامج تشغيل لـ OGR، نظرًا لأنه مكتبة مفتوحة المصدر.

ملفات الأشكال

يُعد تنسيق ملف أشكال ESRI الشائع أحد تنسيقات بيانات GIS الأكثر شيوعًا. على الرغم من أنّ ملف fileشكل من الناحية الفنية هو ملف واحد بامتداد .shp، إلا أنه لا يمكن فتح .shp بمفرده. فهو يتطلب على الأقل ملف .dbf و .shx، وهناك أيضًا مجموعة متنوعة من الملفات الأخرى المطلوبة لأغراض متنوعة. لذلك عندما ترى مرجعًا لملف شكل، فهذا يشير في الغالب إلى مجموعة من الملفات التي عادة ما تكون في أرشيف مضغوط من نوع ما للاحتفاظ بها معًا، وهذه هي الطريقة التي سنستخدم بها المصطلح shapefile لبقية هذه المقالة.

تحتوي ملفات الأشكال على قدر كبير من المعلومات حول المواقع الجغرافية التي تصفها. فهي تصف الأشكال الهندسية الفعلية والبيانات الوصفية عن الأشكال الهندسية والمعلومات حول النظام المرجعي المكاني المستخدم بالإضافة إلى العديد من الجوانب الأخرى للبيانات. لأغراض هذه المقالة، سنولي أهمية خاصة للأشكال الهندسية والبيانات الوصفية والنظام المرجعي المكاني.

تعتبر الأشكال الهندسية والبيانات الوصفية مفاهيم سهلة. الأشكال الهندسية هي نقاط وخطوط ومضلعات، ويمكن التعبير عنها بسهولة في KML. البيانات الوصفية هي بيانات حول البيانات غالبًا ما تُستخدم لأغراض التصفية أو طلب البحث. فعلى سبيل المثال، قد يحتوي خط يصف طريقًا ما على بيانات وصفية حول نوع الطريق (شارع بلدية، طريق سريعة وطنية، طريق خاصة، وما إلى ذلك)، وحدود السرعة، والشخص الذي يموّله، وحجمه، وما إلى ذلك.

وتُستخدَم أنظمة المرجع المكاني (SRS) لتحديد أنظمة الإحداثيات والإسقاطات المُستخدَمة لإنشاء بيانات المتجه. في KML، يستخدم خط العرض وخط الطول في نظام إحداثيات WGS84. ولكن هناك طرق أخرى لتحديد الإحداثيات على الخريطة. وتشمل تلك الشبكات الشائعة أنظمة إسقاط ماركتور المستعرض والشبكة الوطنية البريطانية وأنظمة الطائرة التابعة للدولة. لتحويل البيانات إلى ملفات KML، قد يكون من الضروري تحديد هذه المعلومات. لا يدعم KML سوى WGS84. وعادةً ما تحمل ملفات الأشكال هذه المعلومات معها، وغالبًا ما تُوضع في ملف .prj، ويمكن أن تكتشف OGR تلك المعلومات من هناك. ومع ذلك، في بعض الأحيان يكون من الضروري تحديد نظام SRS. في بعض الأحيان، يتم توفير ذلك بشكل ما من قِبل مصدر البيانات، سواء في الصفحة التي تم تنزيله منه، أو في مستند للقراءة مع التنزيل، أو بتنسيق آخر. هذه السرعة تكفي عادةً. يحتوي الموقع مرجع مكاني على مزيد من المعلومات حول SRS، كما يشتمل على مرجع يسمح لك بالبحث عن أنظمة مرجعية فردية.

ogr2ogr

توفر GDAL مجموعة فعالة من المكتبات للتعامل مع بيانات المتجه. على وجه الخصوص، أداة ogr2ogr هي أداة مفيدة لتحويل البيانات. تتضمن العديد من التطبيقات، بما في ذلك بعض التطبيقات المذكورة أعلاه، GDAL/OGR.

للبدء، يمكنك تنزيل GDAL وتثبيته. ثم ستحتاج إلى ملف أشكال. لأغراض هذا البرنامج التعليمي، جرّب استخدام برنامج من DataSF. يستخدم المثال أدناه ملف أشكال realtor_neighborhoods، الذي يمكن الحصول عليه، بعد الموافقة على ترخيصه، هنا. بعد تنزيل الملف، يمكنك فك ضغطه إلى دليل تتذكره. افتح سطر أوامر وانتقل إلى الدليل الذي وضعت البيانات فيه. والآن لننتقل إلى الجزء الممتع.

يمكن استخدام ogr2ogr من سطر الأوامر بسهولة كبيرة. إليك كيفية تحويل realtor_neighborhoods من ملف شكل إلى ملف KML:

ogr2ogr -f "KML" -where "NBRHOOD='Telegraph Hill'" realtor_neighborhoods.kml realtor_neighborhoods.shp

في ما يلي تصنيف لما يفعله هذا الأمر:

  • ogr2ogr: هذا هو الأمر الأساسي.
  • -f "KML: يؤدي ذلك إلى تعيين تنسيق الإخراج على KML.
  • -where "NBRHOOD='Telegraph Hill'": هذه عبارة where اختيارية، كما هو الحال في SQL. ويسمح لك في الأساس بطلب البحث عن البيانات استنادًا إلى البيانات الوصفية. فهو يعمل مع ملفات الأشكال وأنواع الملفات الأخرى التي تتيح الاستعلام. في هذه الحالة، يتم الاستعلام عن حقل NBRHOOD ويحدد فقط العناصر التي تحتوي على NBRHOOD of Telegraph Hill. إذا تركت هذه المعلمة، فسيمنحك ogr2ogr كل مضلع للمنطقة المجاورة.
  • realtor_neighborhoods.kml: هذا هو اسم ملف الإخراج. اسم ملف الإخراج يأتي أولاً.
  • realtor_neighborhoods.shp: هذا هو اسم ملف الإدخال. يمثل ملف .shp ملف أشكاله بالكامل.

هذا كل ما في الأمر، الأمر بسيط جدًا. يكتب هذا الأمر ملف KML على النحو التالي:

<?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document><Folder><name>realtor_neighborhoods</name>
    <Schema name="realtor_neighborhoods" id="realtor_neighborhoods">
      <SimpleField name="Name" type="string"></SimpleField>
      <SimpleField name="Description" type="string"></SimpleField>
      <SimpleField name="OBJECTID" type="float"></SimpleField>
      <SimpleField name="NBRHOOD" type="string"></SimpleField>
      <SimpleField name="SFAR_DISTR" type="string"></SimpleField>
    </Schema>
    <Placemark>
      <ExtendedData><SchemaData schemaUrl="#realtor_neighborhoods">
        <SimpleData name="OBJECTID">81</SimpleData>
        <SimpleData name="NBRHOOD">Telegraph Hill</SimpleData>
        <SimpleData name="SFAR_DISTR">District 8 - Northeast</SimpleData>
      </SchemaData></ExtendedData>
      <Polygon><outerBoundaryIs><LinearRing><coordinates>-122.41041847319012,37.805924016582715,0 -122.407203813674,37.806324902060979,0 -122.40667792852096,37.803710121958744,0 -122.40348255423899,37.804117462290641,0 -122.40237202127015,37.798540648764529,0 -122.40876046662795,37.797723222540775,0 -122.41041847319012,37.805924016582715,0</coordinates></LinearRing></outerBoundaryIs></Polygon>
      <Style><LineStyle><color>ff0000ff</color></LineStyle>  <PolyStyle><fill>0</fill></PolyStyle></Style>
    </Placemark>
  </Folder></Document></kml>

يمكنك ملاحظة أنه تم الاحتفاظ بالبيانات الوصفية من ملف الشكل، في العنصرين Schema وSimpleData. للحصول على مزيد من المعلومات حول استخدام البيانات الموسعة والحفاظ على البيانات المخصصة، راجع قسم دليل مطوري KML حول إضافة البيانات المخصصة.

ما هي الخطوات التالية؟

تمنحك GDAL/OGR قدرًا هائلاً من الطاقة. في أبسط عملية تنفيذ، يمكنك الآن تحويل جميع بياناتك إلى ملف KML للاستخدام في Google Earth أو "خرائط Google" أو أي متصفِّح جغرافي آخر متوافق مع ملفات KML. والأفضل من ذلك، يمكنك دمج مكتبات GDAL/OGR في تطبيقاتك، مما يتيح لك إمكانية تحويل تحويل بيانات GIS إلى KML تلقائيًا، والتحكم في مخرجات هذا التحويل. جرِّب دمجها مع libkml لمزيد من التحكم الآلي في إنشاء KML.