I remade PR. I abandoned `overlaylayerchange` because this event is not in
Leaflet and it is not suitable in our situation.
In the case of `baselyerchange`, we can expect that our last base layer is
always removed and a new base layer is added. Therefore, the removal event is
not necessary to track the layer, `baslaverchange` is enough. But in the case
of overlays, this is not so, overlays can just be removed from the map, without
adding a new one.
However, after rejecting `layerremove`, it becomes important to maintain the
invariant that there can't be multiple base layers on the map. I.e. first
remove all previous layers and only then add a new one (this is important for
example for a field with an iframe, sometimes you can see two base layers at
the same time)
So I use `overlayadd`/`overlayremove` which are in Leaflet
https://leafletjs.com/reference.html#map-event
I fire these events when the `add`/` remove` is triggered, as well as for
active objects that should be shown on the map (current node, paths, note, ...)
---
What was tested:
1: Basic layer switching functionality
https://github.com/user-attachments/assets/1d7bce4e-3ab6-4366-874f-6a2bb16afb00
2. Switching layers in the URL
https://github.com/user-attachments/assets/6a201eab-65cd-44a9-804e-1efddcc3e256
3. Update links to the active object in the Edit button
https://github.com/user-attachments/assets/539fd547-09af-4d0f-8299-0b1699581a2b
--
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/openstreetmap-website/pull/5474#issuecomment-2615702185
You are receiving this because you are subscribed to this thread.
Message ID:
<openstreetmap/openstreetmap-website/pull/5474/c2615702...@github.com>
_______________________________________________
rails-dev mailing list
rails-dev@openstreetmap.org
https://lists.openstreetmap.org/listinfo/rails-dev