1 OSM.initializations.push(function (map) {
2 $(".search_form a.btn.switch_link").on("click", function (e) {
4 const query = $(this).closest("form").find("input[name=query]").val();
6 if (query) search = "?" + new URLSearchParams({ to: query });
7 OSM.router.route("/directions" + search + OSM.formatHash(map));
10 $(".search_form").on("submit", function (e) {
12 $("header").addClass("closed");
13 const bounds = map.getBounds();
14 const params = new URLSearchParams({
15 query: this.elements.query.value,
17 minlon: bounds.getWest(),
18 minlat: bounds.getSouth(),
19 maxlon: bounds.getEast(),
20 maxlat: bounds.getNorth()
22 const search = params.get("query") ? `/search?${params}` : "/";
23 OSM.router.route(search + OSM.formatHash(map));
26 $(".describe_location").on("click", function (e) {
28 $("header").addClass("closed");
29 const zoom = map.getZoom();
30 const { lat, lng } = OSM.cropLocation(map.getCenter(), zoom);
32 OSM.router.route("/search?" + new URLSearchParams({ lat, lon: lng, zoom }));
36 OSM.initializations.push(function () {
37 $(".control-note .control-button").on("click", function (e) {
41 if ($(this).hasClass("disabled")) return;
43 OSM.router.route("/note/new");
47 OSM.initializations.push(function (map) {
48 const control = $(".control-query"),
49 queryButton = control.find(".control-button");
51 queryButton.on("click", function (e) {
55 if (control.hasClass("active")) {
57 } else if (!queryButton.hasClass("disabled")) {
60 }).on("disabled", function () {
61 if (control.hasClass("active")) {
62 map.off("click", clickHandler);
63 $(map.getContainer()).removeClass("query-active").addClass("query-disabled");
64 $(this).tooltip("show");
66 }).on("enabled", function () {
67 if (control.hasClass("active")) {
68 map.on("click", clickHandler);
69 $(map.getContainer()).removeClass("query-disabled").addClass("query-active");
70 $(this).tooltip("hide");
74 function clickHandler(e) {
75 const { lat, lng } = OSM.cropLocation(e.latlng, map.getZoom());
77 OSM.router.route("/query?" + new URLSearchParams({ lat, lon: lng }));
80 function enableQueryMode() {
81 $(".control-query").addClass("active");
82 map.on("click", clickHandler);
83 $(map.getContainer()).addClass("query-active");
86 function disableQueryMode() {
87 $(map.getContainer()).removeClass("query-active").removeClass("query-disabled");
88 map.off("click", clickHandler);
89 $(".control-query").removeClass("active");