Treat notes as map objects

This commit is contained in:
Anton Khorev 2022-10-04 15:40:25 +03:00
parent fdcd5d6b80
commit ec34d22039
2 changed files with 60 additions and 54 deletions

View file

@ -1,7 +1,6 @@
OSM.Note = function (map) {
var content = $("#sidebar_content"),
page = {},
halo, currentNote;
page = {};
var noteIcons = {
"new": L.icon({
@ -70,29 +69,15 @@ OSM.Note = function (map) {
content.find("textarea").val("").trigger("input");
var data = $(".details").data(),
latLng = L.latLng(data.coordinates.split(","));
var data = $(".details").data();
if (!halo || !map.hasLayer(halo)) {
halo = L.circleMarker(latLng, {
weight: 2.5,
radius: 20,
fillOpacity: 0.5,
color: "#FF6200"
});
map.addLayer(halo);
}
if (currentNote && map.hasLayer(currentNote)) map.removeLayer(currentNote);
currentNote = L.marker(latLng, {
icon: noteIcons[data.status],
opacity: 1,
interactive: true
map.addObject({
type: "note",
id: parseInt(id, 10),
latLng: L.latLng(data.coordinates.split(",")),
icon: noteIcons[data.status]
});
map.addLayer(currentNote);
if (callback) callback();
}
@ -108,8 +93,7 @@ OSM.Note = function (map) {
}
page.unload = function () {
if (map.hasLayer(halo)) map.removeLayer(halo);
if (map.hasLayer(currentNote)) map.removeLayer(currentNote);
map.removeObject();
};
return page;