mit dem Material von Netzwolf sowie dieversen Hinweisen aus diesem Forum habe ich mir folgendes zusammengebastelt, um Marker und Routen auf einer Karte darzustellen:
Deaktiviere ich Zeile 153 (selectControl.activate(); ) dann kann ich im schwarzen Bereich auf den Link “Test” klicken,
aktiviere ich jedoch selbige Zeile, kann ich den Link nicht mehr anklicken.
Hat jemand einen Tip für mich?
Mit den z-indizies habe ich nun einen halben Nachmittag herumgespielt, einer Lösung aber keinen Schritt näher gekommen.
Wäre schön, wenn mir jemand einen Schubs “herunter vom Schlauch” geben könnte…
“selectControl” ist ein Control, die Layers sind Layer.
Die OpenLayers-Struktur ist:
[…]
[…]
“z-index” wird oft falsch verstanden: es wirkt nur zwischen Geschwister-Elementen, aber nicht global.
Sichtbare Controls (Layer-Switcher, Attribution usw.) müssen über dem Container liegen, weil sie ansonsten von den Kartenkacheln überdeckt würden. Das selectControl fängt nach Aktivierung alle Events auf der Zeichenfläche ab und leitet auch die, die es selbst nicht verarbeitet, nicht nach unten weiter.
Sobald ein SelectFeature aktiviert wird, kommt kein Klick mehr bei den Layern an.
Die Tooltips sind als Tooltips gedacht, also nur zur Darstellung eines kurzen Textes und nicht zur Darstellung beliebiger HTML-Elemente; deshalb werden sie anders als Popups in den Layer hineingezeichnet (genauer: sie werden in das Icon-
eingefügt), und sind in der Konstellation mit selectControl nicht anklickbar.
Eine schnelle Lösung für das Problem habe ich leider nicht.
Wenn auch keine Lösung schon mal eine gute Info, dass ich mir den z-Indizies auf dem Holzweg war, ich habe schon an meinem Verstand gezweifelt.
Entweder hauten die Hovers auf den blauen Punkten hin, oder aber das Klicken im schwarzen Fenster, nie aber beides gleichzeitig - ich hab gedacht “kann doch nicht wahr sein”.
Könnte ein selectControl nicht an die ID eines Objektes geknüpft werden getreu dem Motto “reagiere nur bei Klick auf DIV mit der ID xyz”?
Wenn dem so wäre, müsste man doch “nur” dem schwarzen Fenster eine eigene ID verpassen, auf welcher der Event Listener dann lauscht?
Auch wenn die Tooltips nicht zum Darstellen von HTML Elementen geeignet sind so klappt dies doch an sich tadellos - nur nicht in Verbindung mit dem Icon und des DIVs, welches daneben dargestellt wird.
Aber auf jeden Fall schon einmal Danke für deine Erläuterungen.
Das Missverständnis bzgl. z-index ist weitverbreitet. Daraus resultieren auch die oft verwendeten irrwitzigen Werte, wo doch ein paar kleine Zahlen ausreichten.
Das selectfeature dockt sich direkt an das Eventmanagement der Map an, da müsste man einen der Openlayers-Architekten befragen.
Natürlich funktioniert HTML komplett. Nur kommen wegen des Selectfeature keine Events an. Aus diesem Grund werden Popups nicht in den Layer eingebunden, sondern nach allen Controls eingehängt - damit liegen sie über allen anderen Objekten werden von allen Events erricht.
Du könntest mal am Ende der Initialisierungsroutine einfügen (ungetestet):
selectControl.handlers.feature.stopClick = false;
Falls dann die Seite klemmt, interessiert mich die Ausgabe von (an gleicher Stelle eingefügt):
alert (selectControl.handlers);
alert (selectControl.handlers.feature);
alert (selectControl.handlers.feature.stopClick);
Meine Ausweichidee wäre nun, einfach 2 kml Layer einzubinden (Icons entstammen unterschiedlicher Datenherkunft), aber nachdem ich deine Texte nochmal gelesen haben und tatsächlich mal versucht habe, zwei selectControls einzubauen - was auch nicht hinhaut (er berücksichtigt immer nur das zweite), ist damit auch diese Ausweichidee fürn Mors.