1 function initializeSearch(map) {
2 $("#search_form").submit(submitSearch);
3 $("#describe_location").click(describeLocation);
5 if ($("#query").val()) {
6 $("#search_form").submit();
9 // Focus the search field for browsers that don't support
10 // the HTML5 'autofocus' attribute
11 if (!("autofocus" in document.createElement("input"))) {
15 $("#sidebar_content").on("click", ".search_results_entry a.set_position", clickSearchResult);
17 var marker = L.marker([0, 0], {icon: getUserIcon()});
19 function submitSearch(e) {
22 var bounds = map.getBounds();
24 $("#sidebar_title").html(I18n.t('site.sidebar.search_results'));
25 $("#sidebar_content").load($(this).attr("action"), {
26 query: $("#query").val(),
27 minlon: bounds.getWest(),
28 minlat: bounds.getSouth(),
29 maxlon: bounds.getEast(),
30 maxlat: bounds.getNorth()
35 $("#sidebar").one("closed", function () {
36 map.removeLayer(marker);
41 function clickSearchResult(e) {
44 var data = $(this).data(),
45 center = L.latLng(data.lat, data.lon);
47 if (data.minLon && data.minLat && data.maxLon && data.maxLat) {
48 map.fitBounds([[data.minLat, data.minLon],
49 [data.maxLat, data.maxLon]]);
51 map.setView(center, data.zoom);
58 if (data.type && data.id) {
59 map.addObject(data, { zoom: false, style: { opacity: 0.2, fill: false } });
63 function describeLocation(e) {
66 var center = map.getCenter(),
69 $("#sidebar_title").html(I18n.t('site.sidebar.search_results'));
70 $("#sidebar_content").load($(this).attr("href"), {