عن المشروع

jpmap_terrain هو مشروع أمامي يبني تمثيلًا ثلاثي الأبعاد للتضاريس باستخدام بيانات ارتفاع خرائط الجغرافيا اليابانية عبر Babylon.js. مُنفَّذ بلغة TypeScript، ويتم توزيعه كحزمة npm jpmap-terrain مع ملفات ESM وتعريفات الأنواع (.d.ts) (مع @babylonjs/core كـ peerDependency). توجد واجهتان رئيسيتان للبرمجة: الأولى JpmapTerrain، التي تسمح بتضمين مشاهد التضاريس ثلاثية الأبعاد في أي عنصر DOM، وتتيح اختيار محرك WebGPU/WebGL2، وتحديد الإحداثيات الجغرافية والارتفاع والاتجاه والزاوية، والانتقال بالكاميرا عبر flyTo، وتبديل عرض البوصلة. يمكن تبديل نوع الخريطة بين الخريطة القياسية والصور الجوية. الثانية JpmapDiorama، وهي واجهة لعرض التضاريس كـ "ديوراما" مربعة الحجم على الطاولة، وتدعم كل من المتصفحات الويب القياسية وجلسات WebXR (immersive-ar)، ويمكنها الدخول إلى جلسة AR في البيئات المتوافقة. يشمل بوابة العرض التوضيحي 17 عرضًا توضيحيًا، منها مشاهد التضاريس ثلاثية الأبعاد، والتوقيت المتسارع (حركة الشمس والظلال)، وحلقات التكبير، ودوران قمة فوجي، وفحص واجهات برمجة التطبيقات للأشكال المتعددة والدوائر، وقياس المسافات، ومشاهد ملفات .plan الخاصة بـ QGroundControl، ومشاهد GPX (مع إحصائيات ورسوم بيانية للارتفاع)، ووضع النماذج ثلاثية الأبعاد، وتحريك الشخصيات الافتراضية، ومحاكاة أسراب Boids، وعروض الطيران، ولعبة مدفعية باستخدام فيزياء Havok، والتضاريس الكروية، والديوراما الصندوقية. يتكون مكدس التقنية من TypeScript / Babylon.js / Vite (للعروض التوضيحية) / tsdown (لبناء المكتبة) / Playwright (اختبار الانحدار البصري) / Vitest (اختبارات الوحدة). يبدأ خادم التطوير مع إعادة التحميل الساخن، ويتم توفير بنية توزيع موقع العرض التوضيحي عبر Docker/Nginx أيضًا. يمكن تغيير المحرك، ونوع الخريطة، ووضع العرض ثنائي/ثلاثي الأبعاد، وتحديد موقع الكاميرا باستخدام تنسيق المسارات الجغرافية المتوافق مع Google Maps عبر معلمات URL. الترخيص هو Apache-2.0.