نظرة عامة على واجهة برمجة التطبيقات
يوفر هذا القسم وثائق مرجعية كاملة لواجهة برمجة التطبيقات لحزمة MipMapEngine SDK، بما في ذلك جميع الواجهات المتاحة ووصف المعاملات وأمثلة الاستخدام.
إذا لم تقم بتثبيت حزمة SDK بعد، يرجى التحقق من دليل التثبيت أولاً. للمستخدمين الجدد، يُنصح بالبدء بـ البداية السريعة.
توفر حزمة MipMapEngine SDK واجهات مختلفة لتلبية سيناريوهات الاستخدام المختلفة:
🏗️ هيكلة حزمة SDK
طبقة التطبيق
- تطبيقك | Python/C++/CLI | خدمات الويب
طبقة واجهة برمجة التطبيقات
- ReconstructFull (العملية الكاملة) | ReconstructAT (التثليث الجوي) | Reconstruct3D (إعادة البناء ثلاثي الأبعاد)
المحرك الأساسي
- خوارزميات القياس التصويري | تسريع GPU | المعالجة المتوازية
طبقة النظام
- NVIDIA CUDA | نظام الملفات | إدارة التراخيص
📚 فئات الواجهات
1. واجهات المعالجة المجمعة
مناسبة للمعالجة دون اتصال لكميات كبيرة من البيانات:
| الواجهة | الوظيفة | حالة الاستخدام |
|---|---|---|
| ReconstructFull | إعادة بناء العملية الكاملة | بداية سريعة، معالجة تلقائية |
| ReconstructAT | التثليث الجوي | تحكم دقيق، المستخدمون المحترفون |
| Reconstruct3D | إعادة البناء ثلاثي الأبعاد | إنشاء نماذج من نتائج AT |
| OptimizeAT | تحسين AT | استخدام نقاط التحكم لتحسين الدقة |
| DivideTiles | معالجة البلاط | إعادة بناء كتل البيانات واسعة النطاق |
2. الأدوات المساعدة
| الأداة | الوظيفة |
|---|---|
| License Engine | إدارة التراخيص |
| Progress Monitor | مراقبة التقدم |
🔄 سير العمل النموذجي
الخيار 1: العملية الكاملة السريعة (موصى به للمبتدئين)
ReconstructFull → إخراج النتائج
حل من خطوة واحدة، يتعامل تلقائياً مع جميع العمليات
الخيار 2: المعالجة خطوة بخطوة (المستخدمون المحترفون)
ReconstructAT → OptimizeAT (اختياري) → Reconstruct3D → إخراج النتائج
تحكم دقيق في كل خطوة، يدعم فحص النتائج الوسطية والتحسين
📝 طرق استدعاء الواجهة
1. استدعاء سطر الأوامر
تدعم حزمة SDK استدعاء سطر الأوامر المباشر لكل محرك:
# التنسيق العام
<engine_name> [options] -task_json <config_file>
# مثال: استدعاء ReconstructFull
reconstruct_full_engine -reconstruct_type 0 -task_json config.json
بعد التثبيت الأولي، يرجى الرجوع إلى دليل التثبيت لاختبار التحقق.
2. تكامل البرنامج
التكامل في تطبيقك من خلال استدعاءات العملية:
import subprocess
import json
# تحضير التكوين
config = {
"license_id": 9200,
"working_dir": "./output",
"gdal_folder": "./data",
# ... معاملات أخرى
}
# حفظ ملف التكوين
with open("task.json", "w") as f:
json.dump(config, f)
# استدعاء SDK
result = subprocess.run([
"reconstruct_full_engine.exe",
"-reconstruct_type", "0",
"-task_json", "task.json"
], capture_output=True, text=True)
print(result.stdout)
🎯 اختيار الواجهة الصحيحة
| إذا كنت... | الموصى به | السبب |
|---|---|---|
| تستخدم SDK لأول مرة | ReconstructFull | يتعامل تلقائياً مع جميع التفاصيل، الأبسط |
| تحتاج لاستخدام نقاط التحكم | ReconstructAT + OptimizeAT | يدعم تحسين نقاط التحكم |
| معالجة بيانات فائقة الحجم | DivideTiles + Reconstruct3D | يدعم المعالجة المتوازية للكتل |
| تحتاج لنتائج وسطية | المعالجة خطوة بخطوة | يمكن فحص وتعديل النتائج الوسطية |
📖 المفاهيم الشائعة
ملفات تكوين JSON
جميع الواجهات تستخدم ملفات تكوين بتنسيق JSON، الهيكل الأساسي:
{
"license_id": 9200, // مطلوب: معرف الترخيص
"working_dir": "string", // مطلوب: دليل العمل
"gdal_folder": "string", // مطلوب: دليل بيانات GDAL
// ... معاملات أخرى تعتمد على الواجهة
}
تعريف نظام الإحداثيات
{
"coordinate_system": {
"type": 2, // 0=LocalENU, 1=Local, 2=Geographic, 3=Projected, 4=ECEF
"epsg_code": 4326, // رمز EPSG (اختياري)
"wkt": "string", // سلسلة WKT (اختياري)
"origin_point": [lon, lat, alt] // أصل LocalENU (مطلوب فقط عندما type=0)
}
}
معالجة الأخطاء
جميع الواجهات ترجع رموز أخطاء عددية صحيحة:
0: نجحأرقام سالبة: حالات خطأ مختلفة
راجع مرجع رموز الأخطاء للتفاصيل.
🚀 الخطوات التالية
- 📚 تعلم المزيد عن واجهة ReconstructFull (موصى به للمبتدئين)
- 🔧 ادرس واجهة ReconstructAT (المميزات المتقدمة)
- 💡 راجع أمثلة كاملة للاستخدام العملي
نصيحة: يمكن تلبية احتياجات معظم المستخدمين باستخدام ReconstructFull. استخدم الواجهات الأخرى فقط عندما تحتاج للتحكم الدقيق.