Symptom: Switching between layers with different attributions does
not remove the attribution from the previously selected layer.
Control.Attribution keeps track of its attributions with a counter for
each text. The problem described in #4285 is that each time the layer
is added to the map, the counter is increased by two. It's because
Layer calls Control.Attribution.addAttribution() twice, once from
addLayer() and the second time via the whenReady() callback _layerAdd().
This was not caught by the tests since the callback was never fired
(missing map.setView() call).
Fixes#4285
I've made the choice to:
- switch API and method to upper case version (GeoJSON, geoJSON, toGeoJSON)
- keep internal variable all lower case (geojson), because we usually do not
uppercase variables
Fix#2444
Map size does not change from one zoom to another, so we dont need
to scale it.
Without this change, we are creating more or less 4x tiles when
zooming in.
There are still cases where we are requesting a bit more tiles than
what I would expect, but I see it also happens on 0.7.3
Issue was:
- popup toggling is made on 'click' event
- map listen to 'preclick' to close any open popup
- at second user click, 'preclick' has been fired, then popup
closed, so the popup toggling was reopening it
- this was not an issue before 0d3448d494
because 'preclick' on the marker was not bubbled to the map
- also the unittest covering this use case was too much coupled with
the use case with calling marker.fire instead of simulating user
click on the marker icon
- fix fireEvent called for each layer containing event point
- fix layer not removed from this._layer at remove
- fix L.DomEvent.stop(e) not honoured for canvas because events
are both listenned on canvas container and map container
In the case of canvas path, we can't add the canvas element itself
as an interactiveTarget, given that it's big like the path bbox, and
thus would make all this bbox target of events (so also clicking
outside of the path itself, the layer would fire click event, for
example)