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 params = new URLSearchParams({
14 query: this.elements.query.value,
16 minlon: map.getBounds().getWest(),
17 minlat: map.getBounds().getSouth(),
18 maxlon: map.getBounds().getEast(),
19 maxlat: map.getBounds().getNorth()
21 const search = params.get("query") ? `/search?${params}` : "/";
22 OSM.router.route(search + OSM.formatHash(map));
25 $(".describe_location").on("click", function (e) {
27 $("header").addClass("closed");
28 const zoom = map.getZoom();
29 const { lat, lng } = OSM.cropLocation(map.getCenter(), zoom);
31 OSM.router.route("/search?" + new URLSearchParams({ lat, lon: lng, zoom }));
35 OSM.initializations.push(function () {
36 $(".control-note .control-button").on("click", function (e) {
40 if ($(this).hasClass("disabled")) return;
42 OSM.router.route("/note/new");
46 OSM.initializations.push(function (map) {
47 const control = $(".control-query"),
48 queryButton = control.find(".control-button");
50 queryButton.on("click", function (e) {
54 if (control.hasClass("active")) {
56 } else if (!queryButton.hasClass("disabled")) {
59 }).on("disabled", function () {
60 if (control.hasClass("active")) {
61 map.off("click", clickHandler);
62 $(map.getContainer()).removeClass("query-active").addClass("query-disabled");
63 $(this).tooltip("show");
65 }).on("enabled", function () {
66 if (control.hasClass("active")) {
67 map.on("click", clickHandler);
68 $(map.getContainer()).removeClass("query-disabled").addClass("query-active");
69 $(this).tooltip("hide");
73 function clickHandler(e) {
74 const { lat, lng } = OSM.cropLocation(e.latlng, map.getZoom());
76 OSM.router.route("/query?" + new URLSearchParams({ lat, lon: lng }));
79 function enableQueryMode() {
80 $(".control-query").addClass("active");
81 map.on("click", clickHandler);
82 $(map.getContainer()).addClass("query-active");
85 function disableQueryMode() {
86 $(map.getContainer()).removeClass("query-active").removeClass("query-disabled");
87 map.off("click", clickHandler);
88 $(".control-query").removeClass("active");