سؤال

أنا أستخدم leaflet.js لمكتبة خرائط OpenStreetMap الرائعة منذ فترة، وقد بدأت للتو في التنفيذ هذا البرنامج المساعد التجميع.لقد عملت بشكل جيد مع المشروع الحالي، الذي يقوم بتحميل طبقات مختلفة على الخريطة وفي شريط جانبي قابل للنقر.

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

$('.item').click(function() {
    currentlayer = this.id;
...
        try {
            geojson._layers[currentlayer].openPopup();
        } catch(e) {
            map.setView(geojson._layers[currentlayer]._latlng, 16); 
            geojson._layers[currentlayer].openPopup();
        }                   
...
    return false;
});

المشكلة الوحيدة هي أنني أتلقى نفس الخطأ عند محاولة تشغيل طريقة openPopup() بعد التكبير/التصغير، على الرغم من أنه إذا قمت بالنقر فوق الشريط الجانبي مرة أخرى، فستظهر النافذة المنبثقة بشكل جيد.يمكنك أن ترى أنه في العمل هنا:

http://www2.lichfielddc.gov.uk/myarea/map2.php

أيه أفكار؟

هل كانت مفيدة؟

المحلول

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

p> https://github.com/cavis/leafpile

أيضا، أنا أعمل في مشروع مشابه لك - https://github.com/cavis/slideMapper.إنه مسج مسج لإنشاء عرض شرائح يتبع على الخريطة.أنا أعمل على دمج البرنامج المساعد My Leafpile في ذلك مباشرة.

نصائح أخرى

ربما كان عليك تكبير طبقة الكتلة باستخدام zoomToShowLayer :

https://github.com/Leaflet/Leaflet.markercluster/issues/75

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top