Openlayers'daki bir özelliğin seçimini nasıl kaldırabilirim?


9

Haritamdaki seçili özellikleri aşağıdaki satırı kullanarak tanımlayabiliyorum:

vector_layer.selectedFeatures

Bağımsız bir işlev (bir olay işleyicisi değil) kullanarak bu özelliğin seçimini kaldırmak istiyorum. Ben fonksiyonları kullanarak denedim unselect()ve unselectAll()başarısız ve bu yaklaşımın herhangi bir örnek bulamıyorum.

Seçilen nesneye tıklamanın kullanılabileceğini biliyorum unselect. Bu durumda programlı bir çözüm istiyorum.


Yapmaya çalıştığım şey tam olarak değil ama unSelectsorunlar burada tartışıldı: github.com/openlayers/openlayers/pull/486
djq

öneriler için teşekkürler. Bunları gördüm ve ızgara katmanım için uyarlamaya çalıştım. Anlayabildiğim kadarıyla, özellikleri seçmek için her örnek ilk önce özelliklerin oluşturulmasını içeriyordu. Varolan bir katmanın yüklendiği ve kullanıcının bu katmanın özelliklerini seçtiği (henüz) çalışma örneğini görmedim. SelectFeature'ın yalnızca anında oluşturduğunuz vektörler için çalıştığını düşünmeye başlıyorum. Umarım bu doğru değildir, yoksa başım beladadır. ;)
user2378729

Yanıtlar:


13

OpenLayers 2: Tüm SelectFeature kontrol yöntemlerinin seçimini kaldır ve seçimini kaldır ile özelliklerin seçimini kaldırabilirsiniz:

selectControl = new OpenLayers.Control.SelectFeature(vectorLayer);
...
map.addControls([selectControl]);
selectControl.activate();

// unselect any specific feature...
selectControl.unselect(vectorLayer.features[0]);
// ...or all features
selectControl.unselectAll();

Bu işe yaramazsa, muhtemelen kodunuzda bir hata vardır.

İşte keman: http://jsfiddle.net/dHxnh/1/


Bunu belgelerde görmüyorum ... ama işe yarıyor!
pakman

1

Nesnelerin seçimini kaldıran Openlayers - çeşitli yöntemler

Birden çok özellik seçmek için Shift tuşunu kullanın. Özelliklerdeki seçimi birer birer değiştirmek için ctrl tuşunu kullanın. Not: "Fareyle üzerine gelme" seçildiğinde "tıklama" seçeneğinin bir etkisi yoktur

http://openlayers.org/dev/examples/select-feature.html

özelliklerin seçimini kaldırmak için tıklayın


1
Üzgünüz, programatik kelimesini eklemeliydim. unselectBir işlevi kullanmak istiyorum , bir tıklama değil.
djq
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.