أكثر

كيف أضيف طبقة CartoDB إلى خريطة MapBox؟

كيف أضيف طبقة CartoDB إلى خريطة MapBox؟


أواجه بعض المشاكل في إضافة طبقة CartoDB إلى خريطة L.mapbox.map ، واعتقدت أنه شيء بسيط جدًا يجب القيام به في HTML ولكنه لا يعمل ولا أعرف السبب. تحتوي طبقة CartoDB الخاصة بي على مربعات متجهة تفتح نافذة المعلومات الخاصة بها على ارتباط قابل للنقر. خريطتي عبارة عن خريطة MapBox تحتوي على صور وطبقات شوارع من حساب MapBox الخاص بي والتحكم في المشفر الجغرافي mapbox.places.

الكود موجود أدناه وآمل أن يساعدني شخص ما في اكتشاف أخطائي لأن كل ما أحصل عليه هو شاشة رمادية وهي لغز أحاول حله.

   خريطة البلاط          

نظرًا لأن كل من mapbox.js و cartodb.js يشتملان على المنشور ، فأنت تحاول تحميل المنشور مرتين.

يحتوي Mapbox على إصدار "مستقل" من مكتبته لا يتم تحميله بما في ذلك المنشور ، لذا فإن تحميل هذا بالإضافة إلى cartodb.js يجعل كل شيء يعمل.

أضفت أيضًا ملف .setZIndex () إلى طبقة كارتودب لكي تظهر في الأعلى.

يجب أن يعمل الرمز أدناه من أجلك!

   خريطة البلاط           

كم عدد الطبقات الموجودة في ملفك viz.json؟ هل تحصل على أي أخطاء في وحدة التحكم؟

أعتقد أن استخدامcartodb.createLayer ()طريقة قد تضطر إلى استخدام وظيفة رد الاتصال لإحضار طبقة تجانب Mapbox خلف طبقة البيانات الخاصة بك من CartoDB. بدلاً من إضافة طبقة CartoDB إلى الخريطة على الفور ، أضف الطبقة في وظيفة رد الاتصال ثم أحضر طبقة Mapbox إلى الخلف باستخدام طريقة Leaflet's L.tileLayer.bringToBack ()

هذا مثال على كيف أنجزت هذا.