Daha çox

Açıq təbəqələrdə qat seçimi 3


Baza qat seçicisi kimi xəritə qatına nəzarət edən UI yaratmaq üçün möhkəm bir yol hazırlamağa çalışıram. Bu son yazı da daxil olmaqla bir neçə yazı oxudum, amma hələ də təbəqələrin görmə qabiliyyətini dəyişə bilmirəm və həmişə "layer.setVisible bir funksiya deyil" səhvini qaytarıram. Etibarlı bir üsul əldə etdikdən sonra, təbəqə dizaynı və s.

Bir neçə dərsləri izlədim və məsələn, qeyri -şəffaflıq nəzarətli bir təbəqə ağacı yaratdım, amma bütün təbəqələrim qrup halında olsa da, qat ağacı tapa bilmədiyim bir neçə "təyin olunmamış" qat yaradır. Bu səbəbdən, bunu sıfırdan qurmaq istərdim ki, təbəqələrin necə daxil ediləcəyini və ya xaric ediləcəyini və istifadəçi interfeysinin xəritə obyektinə bağlı olmasını təmin edim.

Matt Walker -in LayerSwitcher -dən xəbərim var, amma yenə də istədiyimi etmir və 'qat gəzmək' prosesini lazımi şəkildə başa düşmək üçün mübarizə aparıram. Aşağıda kodumun bir nümunəsi var:

getBaseGroup () {var layer = map.getLayers (); var len = layer.getLength (), l; for (var i = 0; i ") .attr ('dəyər', layer.title) .text (layer.title));}); $ (sel) .change (function () {var selectedValue = $ (this) .find (": selected ") ) .val (); console.log ("seçdiyiniz dəyər:" + seçilmişDəyər); layer.forEach (funksiya (qat) {console.log (qat); ) {console.log (layer.title); // başlığı qaytarır layer.setVisible (doğru);} başqa {layer.setVisible (yalan);}});});

Bütün işləriniz olmadıqca nəyin səhv olduğunu tapmaq çətindir. map.getLayers () xəritədə mövcud olan bütün təbəqələri geri qaytarır və bunlar qarşılıqlı əlaqələr üçün ol3 tərəfindən daxildə yaradılan təbəqələr ola bilər. Qatlar qoyaram, bir sıra və ya bir ol.collection daxil edərəm və bu obyektdən istifadə edərdim. sonra. Qatlar obyektinizi işə salarkən hər zaman əlavə bir atribut təyin edə bilərsiniz. Misal üçün:

var baseLayer = yeni ol.layer.Tile ({DISPLAY_IN_SWITCHER: əsl görünən: yanlış, önyükleme: Sonsuzluq, mənbə: yeni ol.source.BingMaps )); }

və sonra yalnız dəyişdiricinizdə olan təbəqələri süzə bilərsiniz. belə:

var allLayrs = map.getLayers (); layer.forEach (funksiya (qat) {if (layer.get ('DISPLAY_IN_SWITCHER') === doğru) {console.log ("bu təbəqə mənim ağacımda verilmişdir", qat);}});


Videoya baxın: Home Business Ideas - Layer Chicken Farming Plan and Starting a Business at Poultry Farming (Sentyabr 2021).