OSM.initializeNotesLayer = function (map) {
- var noteLayer = map.noteLayer,
- notes = {};
+ let noteLoader;
+ const noteLayer = map.noteLayer;
+ let notes = {};
var noteIcons = {
"new": L.icon({
noteLayer.on("add", () => {
loadNotes();
map.on("moveend", loadNotes);
+ map.fire("overlayadd", { layer: noteLayer });
}).on("remove", () => {
+ if (noteLoader) noteLoader.abort();
+ noteLoader = null;
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);
if (marker) {
marker.setIcon(noteIcons[feature.properties.status]);
} else {
+ let title;
+ const description = feature.properties.comments[0];
+
+ if (description?.action === "opened") {
+ title = description.text;
+ }
+
marker = L.marker(feature.geometry.coordinates.reverse(), {
icon: noteIcons[feature.properties.status],
- title: feature.properties.comments[0].text,
+ title,
opacity: 0.8,
interactive: true
});
return marker.id;
};
- var noteLoader;
-
function loadNotes() {
var bounds = map.getBounds();
var size = bounds.getSize();