יותר

עלון: שנה סמל סמן מ- onEachFeature במקום pointToLayer


אני מתייחס לנתונים חיצוניים, משווה אותם לשדות מסוימים בתכונות. תכונות ומשתמש בזה כדי להחליט באיזו שכבה להכניס את התכונה, כל זה מתוךonEachFeatureחֵלֶק.

onEachFeature: function (feature, layer) {... if (condition1) layer.addTo (layer1); אחרת אם (תנאי 2) שכבה. הוסף אל (שכבה 2); אחר ...}

אני רוצה להגדיר סמלים / סמנים שונים גם באותו תהליך. אבל אני רואה שסמנים מותאמים אישית מוגדרים בדרך כלל בpointToLayerחלק, כמו:

pointToLayer: function (feature, latlng) {... if (condition1) return L.marker (latlng, {icon: icon1}); אחרת אם (תנאי 2) תחזיר את L.marker (latlng, {icon: icon2}); אחר ...}

(נניח כי icon1 ו- icon2 כבר הוגדרו כ-L.icon חדש ({...}))

זה יהפוך לחזרתי באמת ויעבד את המעבד / רשת כדי להתייחס לנתונים החיצוניים שובpointToLayer. האם יש דרך בה אני יכול להגדיר את סמל התכונה מתוךonEachFeatureלחלק את עצמו ולא צריך לעבורpointToLayer?

עריכה: ואפילו להיפך: האם ניתן לעשות את הדברים שבדרך כלל הייתם עושים בהםonEachFeature, בpointToLayerבמקום זאת? השִׁכבָהאין הטיעון ברוב השימושים ... האם ניתן להעביר אותו? האם העלון עובר דרך כל תכונה עבורpointToLayerבאותו אופן שהוא עושה עבורonEachFeature?


אני יכול לראות שזו שאלה ישנה, ​​אבל אולי זה יכול לעזור: השתמש בשיטת setIcon בכל תנאי:

onEachFeature: function (feature, layer) {... if (condition1) {layer.setIcon (icon1); layer.addTo (layer1); } אחרת אם (condition2) {layer.setIcon (icon2); layer.addTo (layer2); } אחר ...}


צפו בסרטון: TUTORIAL MENGUBAH ICON APLIKASI ANDROID JADI LUCU TERBARU (אוֹקְטוֹבֶּר 2021).