Özel bir Broşür denetimi yazdım. Her katman için eklenebilecek bir çeşit efsane. Denetimin kendisini haritadan kaldırmak için bir kapatma düğmesi vardır (bir pop-up gibi). Kontrol, bir butona tıklayarak eklenebilir. Sorunum, kullanıcının aynı denetimi haritaya birkaç kez ekleyebilmesidir. Yani ihtiyacım olan şey, bu özel kontrolün zaten haritaya eklenmiş olup olmadığını test etmek ve eğer varsa, tekrar eklememek.Haritaya bir yaprakçık denetimi zaten eklenip eklenmediğini öğrenin
Ben
control.addTo(map);
Şimdi kontrol kapatma düğmesi vardır hayal tıklayın bazı seçenekler
var control = L.control.customControl(mylayer);
ve butona benim haritaya eklemek geçen her bir katman için bir denetim oluşturmak ve kapalı olabilir . Kullanıcı tekrar butona tıklarsa harita üzerinde halen açık değilse Şimdi, sadece denetim eklemek istiyorum - böyle bir şey (hasControl yalancı kod, hiçbir tür fonksiyon afaik vardır) yaptığım Kolaylık olması açısından
if(!(map.hasControl(control))) {
control.addTo(map);
}
bir yakınlaştırma denetimi oluşturduğum ve iki kez here eklediğim bir örnek.
sayesinde, '_map' özelliği kullanılan - çalışıyor! tekne yüzer :) Ama mülkiyet '_' önek o normalde kullanmak gerekiyordu değil özel mülkiyet, olduğunu ima,' _map' özelliğini kullanırken göz önünde, bulundurun ne olursa olsun – Krxldfx
. Broşürün gelecekteki sürümlerinde değiştirilebilir veya kaldırılabilir. Bu problemle ikinci yöntemle karşılaşmayacaksınız. Sadece :) tam olduğu, cevabım bu eklendi – iH8
Eh, şimdi ikinci versiyona yakından vardı. Ben yapmazdım, ben bir customControl fazla varsa bu bir sorun olabilir mi? var customControl1 'gibi bir şey = Yeni L.Control.Custom (someOptions); var customControl2 = new L.Control.Custom (otherOptions); '- Şimdi hem ekleyebilir ve ilkini kaldırırsanız,' hasCustomControl' – Krxldfx