Leaflet: GeoJson pointerEvents = 'لا شيء' أي تأثيرات

تم إنشاؤها على ٣ فبراير ٢٠١٧  ·  4تعليقات  ·  مصدر: Leaflet/Leaflet

  • [X] أبلغ عن خطأ ، لا أطلب المساعدة
  • [X] لقد راجعت الوثائق للتأكد من أن السلوك موثق ومتوقع
  • [X] أنا متأكد من أن هذه مشكلة في رمز Leaflet ، وليست مشكلة في الكود الخاص بي ولا في إطار العمل الذي أستخدمه (Cordova ، Ionic ، Angular ، React ...)
  • [X] لقد بحثت في المشكلات للتأكد من عدم الإبلاغ عنها بعد

كيف تتكاثر

  • إصدار المنشور الذي أستخدمه: 1.0.3
  • المتصفح (مع الإصدار) الذي أستخدمه: Chrome 55
  • نظام التشغيل / النظام الأساسي (مع الإصدار) الذي أستخدمه: Windows

ما هو السلوك الذي أتوقعه وأي سلوك أراه

يجب أن أعرض تراكبين GeoJson: أحدهما يمكنه التفاعل مع المستخدم (انقر بالماوس فوقه) والثاني بدون تفاعل ، فقط لعرض المعلومات المرئية.
تقع الطبقة الأولى تحت الثانية ولا يلزم رسم سوى الحد.

لقد حددت "pointerEvents" إلى لا شيء لنمط الطبقة الثانية ، لكن LeafLet لا تستخدم هذه الخاصية: svg الذي تم إنشاؤه بدون هذه الخاصية.

مثال بسيط على إعادة إنتاج المشكلة

  • [X] هذا المثال بسيط قدر الإمكان
  • [] هذا المثال لا يعتمد على أي كود طرف ثالث
var interactiveLayer = L.topoJson(epci2014TopoJson, {
        style: function (feature) {
            return {
                weight: 0.0,
                fillOpacity: 0.7,
                color: 'rgb(200,200,200)',
                fillColor: getColor(feature.properties.siren_epci || feature.properties.SIREN_EPCI)
            }
        },
        onEachFeature: function (feature, layer) {
            layer.on({
                mouseover: highlightFeature,
                mouseout: resetHighlight,
                click: zoomToFeature
            });

        }
    }).addTo(map);

    var justForDrawLayer=L.geoJson(departementsGeoJson, {
        style: function (feature) {
            return {
                pointerEvents : 'none',
                clickable:false,
                weight: 3,
                fillOpacity: 0.0,
                color: 'rgb(220,220,220)'
            }
        }
    }).addTo(map);

لقد حاولت وضع "قابل للنقر" على "خطأ" ، بدون تغيير.

المعذرة إذا كانت لغتي الإنجليزية ليست كافية بشكل صحيح. شكرا لك.

استخدام http://playground-leaflet.rhcloud.com/ أو أي موقع مثل jsfiddle.

التعليق الأكثر فائدة

لقد حاولت مع "in teractive: false " ، إنه يعمل.
أنا آسف (لقد طلبت منا التواصل) وسعيد (لأنه يعمل).

شكرا.

ال 4 كومينتر

لقد حددت "pointerEvents" بدون نمط الطبقة الثانية ، لكن LeafLet لا تستخدم هذه الخاصية

حسنًا ، pointerEvents ليس خيارًا معترفًا به لـ L.Path ، لذلك لست متأكدًا مما كنت تتوقعه.

لقد حاولت وضع "قابل للنقر" على "خطأ" ، بدون تغيير.

غيّر هذا الخيار الاسم إلى interactive في 1.0.0 ، راجع "الخيارات الموروثة من الطبقة التفاعلية" في الوثائق.

شكرا لأستجابتك.

بالنسبة إلى "pointerEvents": نظرًا لعدم تمكيني من جعل الطبقة "غير نشطة" لتفاعلات المستخدم ، فقد حاولت اتباع المثال الوارد هنا: http://leafletjs.com/examples/map-panes/ للجزء و المؤشرالأحداث المطبقة على طبقة geoJson. ربما أسأت فهم هذه الفكرة.

سأحاول مع الخاصية غير النشطة لأسلوب geojson.

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

شكرا

لقد حاولت مع "in teractive: false " ، إنه يعمل.
أنا آسف (لقد طلبت منا التواصل) وسعيد (لأنه يعمل).

شكرا.

لدي نفس المهمة لتقديم طبقتين ويجب أن تكون الطبقة العليا غير نشطة. "in teractive: false " ساعد ، شكرًا!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات