Use baselayerchange/overlaylayerchange instead of layeradd/layerremove for speed up Map Data layer render

This commit is contained in:
Roman Deev 2025-01-07 03:17:24 +03:00
parent d76b7a5eea
commit dae7a003fe
7 changed files with 38 additions and 25 deletions

View file

@ -25,18 +25,16 @@ OSM.initializeDataLayer = function (map) {
onSelect(e.layer);
});
map.on("layeradd", function (e) {
if (e.layer === dataLayer) {
map.on("moveend", updateData);
updateData();
}
dataLayer.on("add", function () {
map.fire("overlayadd", { layer: this });
map.on("moveend", updateData);
updateData();
});
map.on("layerremove", function (e) {
if (e.layer === dataLayer) {
map.off("moveend", updateData);
$("#browse_status").empty();
}
dataLayer.on("remove", function () {
map.off("moveend", updateData);
$("#browse_status").empty();
map.fire("overlayremove", { layer: this });
});
function updateData() {

View file

@ -23,10 +23,12 @@ OSM.initializeNotesLayer = function (map) {
noteLayer.on("add", () => {
loadNotes();
map.on("moveend", loadNotes);
map.fire("overlayadd", { layer: noteLayer });
}).on("remove", () => {
map.off("moveend", loadNotes);
noteLayer.clearLayers();
notes = {};
map.fire("overlayremove", { layer: noteLayer });
}).on("click", function (e) {
if (e.layer.id) {
OSM.router.route("/note/" + e.layer.id);