IndexSizeError (in Safari) durch leere Condition in der styles config

Issue #791 resolved
Jan-Hendrik Worch created an issue

Wenn man wie in der Style Doku angegeben eine Regel mit leerer condition als Fallback erstellt, kommt es mit dem Safari Browser zu unerwünschtem Verhalten, wohingegen z.B. Chrome und Edge keine Probleme damit haben.

Minimalbeispiel mit einem SensorThings Layer ist unter https://frost.swo-netz.de/Parken_dev/ zu erreichen. Die Seite funktioniert mit Chrome, aber nicht mit Safari. In der Console in Safari wird eine “IndexSizeError: The index is not in the allowed range” in der drawImage funktion ausgegeben. Das führt dazu, dass die Seite nicht mehr korrekt aufgebaut wird - also z.B. Zoomstufen der Map nicht mehr funktionieren.

Comments (9)

  1. Dennis Sen

    Moin,

    nach Recherche scheint Safari das Zeichnen von “leeren Bildern” (0x0) nicht zu erlauben. An einigen Stellen wurde das als Bug bezeichnet, aber ich habe nicht in der Spezifikation nachgeschaut – kann man ja so oder so nichts dran ändern.

    Lösungsideen:

    1. Kreis bekommt 1 als Radius, um den Bug zu umgehen. Da er transparent ist, sollte das nichts ändern.
    2. Statt “Kreis mit Radius 0” wird ein Bild verwendet:

      { "type": "icon", "imageName": "invisible.png" }

    Die invisible.png funktioniert in den anderen Browsern auch dann wie erwartet, wenn sie gar nicht existiert. (In der Konsole ist dann ein 404-Fehler zu sehen.)

    Leider kann ich die Vorschläge nicht selbst auf Safari ausprobieren, da ich gerade keinen Mac zur Hand habe.

    Eine transparente 1x1-Pixel-PNG zum Ausprobieren habe ich einmal an das Ticket angehängt.

    Viele Grüße

  2. Dennis Sen

    Hallo Herr @Jan-Hendrik Worch ,

    ich schreibe ihnen einmal mit @, da ich annehme, dass die Antwort in diesem Issue Sie nicht erreicht hat. Falls doch, freue ich mich über eine kurze Rückmeldung, ob einer der Lösungsvorschläge bei Ihnen geklappt hat.

    Viele Grüße

  3. Jan-Hendrik Worch reporter

    HI,

    die Antwort hatte mich erreicht, aber zu dem Zeitpunkt hatte ich auch kein Testgerät zur Verfügung und danach ist es leider etwas untergegangen. Ich habe gerade die 1 Px Radius Variante getestet und damit scheint es zu funktionieren.

    Vielen Dank für die Idee und viele Grüße

  4. Dennis Sen

    Danke für die Rückmeldung. :) Dann schließe ich dieses Issue einmal. Sollten mit der Lösung doch noch Probleme auftreten, können Sie das Ticket gern wieder öffnen.

    Viele Grüße

  5. Jan-Hendrik Worch reporter

    Hi,

    gerade ist aufgefallen, dass es mit dem Workaround doch noch ein kleines Problem gibt: Dadurch dass ein, zugegeben, Mini Kreis gezeichnet wird, kann man immer noch Informationen abfragen, wenn MouseHover aktiviert ist oder wenn man zufällig an der richtigen Stelle klickt. Das kann natürlich ungewünscht sein.

    Viele Grüße

  6. Log in to comment