الانتقال إلى المحتوى الرئيسي

السؤال

كيف أستورد GeoJSON الذي يحتوي على مصفوفة كائنات متداخلة؟

الإجابة

في هذا الدليل العملي، سنستخدم بيانات مفتوحة متاحة للعامة هنا. ويمكن العثور على نسخة منها هنا.
  1. نزّل البيانات بتنسيق GeoJSON وأعد تسمية الملف إلى geojson.json.
  2. تعرّف على البنية.
  1. أنشئ جدولًا لتخزين صفوف GeoJSON.

المطلوب هنا هو إنشاء صف لكل كائن في مصفوفة features“. ويشير نوع البيانات المُستنتَج للحقل geometry إلى أنه يقابل MultiPolygon نوع البيانات في ClickHouse.
  1. حضّر البيانات.

الهدف الرئيسي من الاستعلام هو التحقق من حصولنا على صف واحد لكل كائن في مصفوفة features.
وُضع الحقل features.geometry.coordinates ضمن تعليق لجعل مجموعة النتائج أكثر قابلية للقراءة.
  1. أدرِج البيانات.

هنا، يظهر الخطأ التالي:
يحدث ذلك بسبب تحليل features.geometry.coordinates.
  1. لنتحقق من نوع البيانات الخاص به.

يمكن تصحيح ذلك بتحويل multipolygon.properties.coordinates إلى Array(Array(Array(Tuple(Float64,Float64)))). ولتحقيق ذلك، يمكننا استخدام الدالة arrayMap(func,arr1,…).
  1. أدخِل البيانات.

الخلاصة

قد يكون التعامل مع JSON مهمة معقدة. تناول هذا الدليل العملي سيناريو يمكن أن تؤدي فيه مصفوفة كائنات متداخلة إلى زيادة صعوبة هذه المهمة. لأي متطلبات أخرى متعلقة بـ JSON، يُرجى الرجوع إلى الوثائق.
آخر تعديل في ١ يوليو ٢٠٢٦