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
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.
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).