übernanderliegende Vektorfeatures selektieren in OpenLayer

Hallo Leute,

ich habe eine Vektor Layer erzeugt

new OpenLayers.Layer.Vector("Flugzeuge")

Nun habe ich mehrere Features hinzugefügt

OpenLayers.Feature.Vector(...

klappt alles wunderbar. wenn ich nun aber hinauszoome und sich mehrere Features übereinander legen, möchte ich alle erfassen die sich in derselben Position wie die Maus befindet.
Ich habe bereits OpenLayers.Control.SelectFeature verwendet, jedoch bekomme ich bei den Eventfunktionen nur ein feature geliefert.Und zwar das welches am obersten liegt. Ich bräuchte aber alle, z.b. als Array oder dessen ID.

Kann mir jemand weiterhelfen bzw. den entscheidenten Tipp geben ? Im schlimmsten Fall müsste ich jedes mal berechnen ob die Maus in der Nähe eines Features ist. Das geht doch bestimmt einfacher :confused:

viele grüße,
alex

Hallo alex,

das müsste mit der Option SelectFeature.multiple oder multipleKeygehen.

Gruß,
ikonor

hi,

danke hab ich aber bereits versucht. Es sieht bei mir so aus:


var airportLayer = new OpenLayers.Layer.Vector("Airports", 
    {   projection: new OpenLayers.Projection("EPSG:4326") }
);


var selectVec = new OpenLayers.Control.SelectFeature(airportLayer,
{overFeature: onoverFeature, onSelect: onFeatureSelect,onUnselect: onFeatureUnselect,
hover: true,multiple:true});


function onFeatureSelect(feature) {

    console.log(airportLayer.selectedFeatures.length);
}

Sobald ich über ein Icon drüber scolle, kommt die Konsolenmeldung 1.
Scroll ich jedoch über mehrere übereinander liegende Icons zeigt er auch nur eine 1 an. :frowning:

gruß,
alex

Das multiple habe ich leider falsch verstanden. Damit wird nur gesteuert, ob mehrere Features nacheinander selektiert werden können, ohne dass das zuvor gewählte wieder deselektiert wird.

Bei einer kurzen Suche habe ich auch nur Fragen dazu, aber keine passenden Antworten gefunden. Daher befürchte ich fast, dass das gar nicht ohne weiteres geht und man tatsächlich die Features selbst durchsuchen muss (so ähnlich wie bei diesem nicht umgesetzten Ansatz für mehrere Layers).

Du könntest ja auch noch auf der OpenLayers Users Mailingliste fragen.

habe es nun mit der Clusterstrategie gelöst. trotzdem danke!