});
}
- function updateMarker(feature) {
+ function addCreatedNoteMarker(feature) {
var marker = L.marker(feature.geometry.coordinates.reverse(), {
icon: noteIcons[feature.properties.status],
opacity: 0.9,
});
marker.id = feature.properties.id;
marker.addTo(noteLayer);
- return marker;
+ }
+
+ function addHalo(latlng) {
+ if (halo) map.removeLayer(halo);
+
+ halo = L.circleMarker(latlng, {
+ weight: 2.5,
+ radius: 20,
+ fillOpacity: 0.5,
+ color: "#FF6200"
+ });
+
+ map.addLayer(halo);
+ }
+
+ function removeHalo() {
+ if (halo) map.removeLayer(halo);
+ halo = null;
}
page.pushstate = page.popstate = function (path) {
});
};
- function newHalo(loc, a) {
- var hasHalo = halo && map.hasLayer(halo);
-
- if (a === "dragstart" && hasHalo) {
- map.removeLayer(halo);
- } else {
- if (hasHalo) map.removeLayer(halo);
-
- halo = L.circleMarker(loc, {
- weight: 2.5,
- radius: 20,
- fillOpacity: 0.5,
- color: "#FF6200"
- });
-
- map.addLayer(halo);
- }
- }
-
page.load = function (path) {
if (addNoteButton.hasClass("disabled")) return;
if (addNoteButton.hasClass("active")) return;
});
newNoteMarker.on("dragstart dragend", function (a) {
- newHalo(newNoteMarker.getLatLng(), a.type);
+ removeHalo();
+ if (a.type !== "dragstart") {
+ addHalo(newNoteMarker.getLatLng());
+ }
});
- newNoteMarker.addTo(noteLayer);
- newHalo(newNoteMarker.getLatLng());
+ newNoteMarker.addTo(map);
+ addHalo(newNoteMarker.getLatLng());
newNoteMarker.on("remove", function () {
addNoteButton.removeClass("active");
createNote(location, text, (feature) => {
content.find("textarea").val("");
- updateMarker(feature);
- noteLayer.removeLayer(newNoteMarker);
+ addCreatedNoteMarker(feature);
+ map.removeLayer(newNoteMarker);
newNoteMarker = null;
addNoteButton.removeClass("active");
OSM.router.route("/note/" + feature.properties.id);
};
page.unload = function () {
- if (newNoteMarker) noteLayer.removeLayer(newNoteMarker);
- if (halo) map.removeLayer(halo);
+ if (newNoteMarker) map.removeLayer(newNoteMarker);
+ removeHalo();
addNoteButton.removeClass("active");
};