var map, featureList,windSearch = [],funboardSearch = [],raceboardSearch = [],rsxSearch = [],wavesSearch = [],techno293Search = [],foilSearch = [],adaptadoSearch = [],shopSearch = []; $(window).resize(function() { sizeLayerControl(); }); $(document).on("click", ".feature-row", function(e) { $(document).off("mouseout", ".feature-row", clearHighlight); sidebarClick(parseInt($(this).attr("id"), 10)); }); if ( !("ontouchstart" in window) ) { $(document).on("mouseover", ".feature-row", function(e) { highlight.clearLayers().addLayer(L.circleMarker([$(this).attr("lat"), $(this).attr("lng")], highlightStyle)); }); } $(document).on("mouseout", ".feature-row", clearHighlight); $("#about-btn").click(function() { $("#aboutModal").modal("show"); $(".navbar-collapse.in").collapse("hide"); return false; }); $("#legend-btn").click(function() { $("#legendModal").modal("show"); $(".navbar-collapse.in").collapse("hide"); return false; }); $("#login-btn").click(function() { $("#loginModal").modal("show"); $(".navbar-collapse.in").collapse("hide"); return false; }); $("#list-btn").click(function() { animateSidebar(); return false; }); $("#nav-btn").click(function() { $(".navbar-collapse").collapse("toggle"); return false; }); $("#sidebar-toggle-btn").click(function() { animateSidebar(); return false; }); $("#sidebar-hide-btn").click(function() { animateSidebar(); return false; }); function animateSidebar() { $("#sidebar").animate({ width: "toggle" }, 350, function() { map.invalidateSize(); }); } function sizeLayerControl() { $(".leaflet-control-layers").css("max-height", $("#map").height() - 50); } function clearHighlight() { highlight.clearLayers(); } function sidebarClick(id) { var layer = markerClusters.getLayer(id); map.setView([layer.getLatLng().lat, layer.getLatLng().lng], 17); layer.fire("click"); /* Hide sidebar and go to the map on small screens */ if (document.body.clientWidth <= 767) { $("#sidebar").hide(); map.invalidateSize(); } } function syncSidebar() { /* Empty sidebar features */ $("#feature-list tbody").empty(); /* Loop through layer and add only features which are in the map bounds */ winds.eachLayer(function (layer) {if (map.hasLayer(windLayer)) {if (map.getBounds().contains(layer.getLatLng())) {$("#feature-list tbody").append('' + layer.feature.properties.NAME + '');}}});funboards.eachLayer(function (layer) {if (map.hasLayer(funboardLayer)) {if (map.getBounds().contains(layer.getLatLng())) {$("#feature-list tbody").append('' + layer.feature.properties.NAME + '');}}});raceboards.eachLayer(function (layer) {if (map.hasLayer(raceboardLayer)) {if (map.getBounds().contains(layer.getLatLng())) {$("#feature-list tbody").append('' + layer.feature.properties.NAME + '');}}});rsxs.eachLayer(function (layer) {if (map.hasLayer(rsxLayer)) {if (map.getBounds().contains(layer.getLatLng())) {$("#feature-list tbody").append('' + layer.feature.properties.NAME + '');}}});wavess.eachLayer(function (layer) {if (map.hasLayer(wavesLayer)) {if (map.getBounds().contains(layer.getLatLng())) {$("#feature-list tbody").append('' + layer.feature.properties.NAME + '');}}});techno293s.eachLayer(function (layer) {if (map.hasLayer(techno293Layer)) {if (map.getBounds().contains(layer.getLatLng())) {$("#feature-list tbody").append('' + layer.feature.properties.NAME + '');}}});foils.eachLayer(function (layer) {if (map.hasLayer(foilLayer)) {if (map.getBounds().contains(layer.getLatLng())) {$("#feature-list tbody").append('' + layer.feature.properties.NAME + '');}}});adaptados.eachLayer(function (layer) {if (map.hasLayer(adaptadoLayer)) {if (map.getBounds().contains(layer.getLatLng())) {$("#feature-list tbody").append('' + layer.feature.properties.NAME + '');}}});shops.eachLayer(function (layer) {if (map.hasLayer(shopLayer)) {if (map.getBounds().contains(layer.getLatLng())) {$("#feature-list tbody").append('' + layer.feature.properties.NAME + '');}}}); /* Update list.js featureList */ featureList = new List("features", { valueNames: ["feature-name"] }); featureList.sort("feature-name", { order: "asc" }); } /* Basemap Layers */ var cartoLight = L.tileLayer("https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png", { maxZoom: 19, attribution: '© OpenStreetMap contributors, © CartoDB' }); var usgsImagery = L.layerGroup([L.tileLayer("http://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryOnly/MapServer/tile/{z}/{y}/{x}", { maxZoom: 15, }), L.tileLayer.wms("http://raster.nationalmap.gov/arcgis/services/Orthoimagery/USGS_EROS_Ortho_SCALE/ImageServer/WMSServer?", { minZoom: 16, maxZoom: 19, layers: "0", format: 'image/jpeg', transparent: true, attribution: "Aerial Imagery courtesy USGS" })]); /* Overlay Layers */ var highlight = L.geoJson(null); var highlightStyle = { stroke: false, fillColor: "#00FFFF", fillOpacity: 0.7, radius: 10 }; /* Single marker cluster layer to hold all clusters */ var markerClusters = new L.MarkerClusterGroup({ spiderfyOnMaxZoom: true, showCoverageOnHover: false, zoomToBoundsOnClick: true, disableClusteringAtZoom: 16 }); var windLayer = L.geoJson(null); var winds = L.geoJson(null, { pointToLayer: function (feature, latlng) { return L.marker(latlng, { icon: L.icon({ iconUrl: "img/wind.png", iconSize: [24, 28], iconAnchor: [12, 28], popupAnchor: [0, -25] }), title: feature.properties.NAME, riseOnHover: true }); }, onEachFeature: function (feature, layer) { if (feature.properties) { var content = "" + "" + "" + "" + "" + "
Name" + feature.properties.NAME + "
Phone" + feature.properties.TEL + "
Address" + feature.properties.ADDRESS1 + ", " + feature.properties.CITY + "
+ info
"; layer.on({ click: function (e) { $("#feature-title").html(feature.properties.NAME); $("#feature-info").html(content); $("#featureModal").modal("show"); highlight.clearLayers().addLayer(L.circleMarker([feature.geometry.coordinates[1], feature.geometry.coordinates[0]], highlightStyle)); } }); $("#feature-list tbody").append(''); windSearch.push({ name: layer.feature.properties.NAME, address: layer.feature.properties.ADDRESS1, source: "Winds", id: L.stamp(layer), lat: layer.feature.geometry.coordinates[1], lng: layer.feature.geometry.coordinates[0] }); } } }); $.getJSON("data/wind.php", function (data) { winds.addData(data); map.addLayer(windLayer);});var funboardLayer = L.geoJson(null); var funboards = L.geoJson(null, { pointToLayer: function (feature, latlng) { return L.marker(latlng, { icon: L.icon({ iconUrl: "img/funboard.png", iconSize: [24, 28], iconAnchor: [12, 28], popupAnchor: [0, -25] }), title: feature.properties.NAME, riseOnHover: true }); }, onEachFeature: function (feature, layer) { if (feature.properties) { var content = "
' + layer.feature.properties.NAME + '
" + "" + "" + "" + "" + "
Name" + feature.properties.NAME + "
Phone" + feature.properties.TEL + "
Address" + feature.properties.ADDRESS1 + ", " + feature.properties.CITY + "
+ info
"; layer.on({ click: function (e) { $("#feature-title").html(feature.properties.NAME); $("#feature-info").html(content); $("#featureModal").modal("show"); highlight.clearLayers().addLayer(L.circleMarker([feature.geometry.coordinates[1], feature.geometry.coordinates[0]], highlightStyle)); } }); $("#feature-list tbody").append(''); funboardSearch.push({ name: layer.feature.properties.NAME, address: layer.feature.properties.ADDRESS1, source: "Funboards", id: L.stamp(layer), lat: layer.feature.geometry.coordinates[1], lng: layer.feature.geometry.coordinates[0] }); } } }); $.getJSON("data/funboard.php", function (data) { funboards.addData(data); map.addLayer(funboardLayer);});var raceboardLayer = L.geoJson(null); var raceboards = L.geoJson(null, { pointToLayer: function (feature, latlng) { return L.marker(latlng, { icon: L.icon({ iconUrl: "img/raceboard.png", iconSize: [24, 28], iconAnchor: [12, 28], popupAnchor: [0, -25] }), title: feature.properties.NAME, riseOnHover: true }); }, onEachFeature: function (feature, layer) { if (feature.properties) { var content = "
' + layer.feature.properties.NAME + '
" + "" + "" + "" + "" + "
Name" + feature.properties.NAME + "
Phone" + feature.properties.TEL + "
Address" + feature.properties.ADDRESS1 + ", " + feature.properties.CITY + "
+ info
"; layer.on({ click: function (e) { $("#feature-title").html(feature.properties.NAME); $("#feature-info").html(content); $("#featureModal").modal("show"); highlight.clearLayers().addLayer(L.circleMarker([feature.geometry.coordinates[1], feature.geometry.coordinates[0]], highlightStyle)); } }); $("#feature-list tbody").append(''); raceboardSearch.push({ name: layer.feature.properties.NAME, address: layer.feature.properties.ADDRESS1, source: "Raceboards", id: L.stamp(layer), lat: layer.feature.geometry.coordinates[1], lng: layer.feature.geometry.coordinates[0] }); } } }); $.getJSON("data/raceboard.php", function (data) { raceboards.addData(data); map.addLayer(raceboardLayer);});var rsxLayer = L.geoJson(null); var rsxs = L.geoJson(null, { pointToLayer: function (feature, latlng) { return L.marker(latlng, { icon: L.icon({ iconUrl: "img/rsx.png", iconSize: [24, 28], iconAnchor: [12, 28], popupAnchor: [0, -25] }), title: feature.properties.NAME, riseOnHover: true }); }, onEachFeature: function (feature, layer) { if (feature.properties) { var content = "
' + layer.feature.properties.NAME + '
" + "" + "" + "" + "" + "
Name" + feature.properties.NAME + "
Phone" + feature.properties.TEL + "
Address" + feature.properties.ADDRESS1 + ", " + feature.properties.CITY + "
+ info
"; layer.on({ click: function (e) { $("#feature-title").html(feature.properties.NAME); $("#feature-info").html(content); $("#featureModal").modal("show"); highlight.clearLayers().addLayer(L.circleMarker([feature.geometry.coordinates[1], feature.geometry.coordinates[0]], highlightStyle)); } }); $("#feature-list tbody").append(''); rsxSearch.push({ name: layer.feature.properties.NAME, address: layer.feature.properties.ADDRESS1, source: "Rsxs", id: L.stamp(layer), lat: layer.feature.geometry.coordinates[1], lng: layer.feature.geometry.coordinates[0] }); } } }); $.getJSON("data/rsx.php", function (data) { rsxs.addData(data); map.addLayer(rsxLayer);});var wavesLayer = L.geoJson(null); var wavess = L.geoJson(null, { pointToLayer: function (feature, latlng) { return L.marker(latlng, { icon: L.icon({ iconUrl: "img/waves.png", iconSize: [24, 28], iconAnchor: [12, 28], popupAnchor: [0, -25] }), title: feature.properties.NAME, riseOnHover: true }); }, onEachFeature: function (feature, layer) { if (feature.properties) { var content = "
' + layer.feature.properties.NAME + '
" + "" + "" + "" + "" + "
Name" + feature.properties.NAME + "
Phone" + feature.properties.TEL + "
Address" + feature.properties.ADDRESS1 + ", " + feature.properties.CITY + "
+ info
"; layer.on({ click: function (e) { $("#feature-title").html(feature.properties.NAME); $("#feature-info").html(content); $("#featureModal").modal("show"); highlight.clearLayers().addLayer(L.circleMarker([feature.geometry.coordinates[1], feature.geometry.coordinates[0]], highlightStyle)); } }); $("#feature-list tbody").append(''); wavesSearch.push({ name: layer.feature.properties.NAME, address: layer.feature.properties.ADDRESS1, source: "Wavess", id: L.stamp(layer), lat: layer.feature.geometry.coordinates[1], lng: layer.feature.geometry.coordinates[0] }); } } }); $.getJSON("data/waves.php", function (data) { wavess.addData(data); map.addLayer(wavesLayer);});var techno293Layer = L.geoJson(null); var techno293s = L.geoJson(null, { pointToLayer: function (feature, latlng) { return L.marker(latlng, { icon: L.icon({ iconUrl: "img/techno293.png", iconSize: [24, 28], iconAnchor: [12, 28], popupAnchor: [0, -25] }), title: feature.properties.NAME, riseOnHover: true }); }, onEachFeature: function (feature, layer) { if (feature.properties) { var content = "
' + layer.feature.properties.NAME + '
" + "" + "" + "" + "" + "
Name" + feature.properties.NAME + "
Phone" + feature.properties.TEL + "
Address" + feature.properties.ADDRESS1 + ", " + feature.properties.CITY + "
+ info
"; layer.on({ click: function (e) { $("#feature-title").html(feature.properties.NAME); $("#feature-info").html(content); $("#featureModal").modal("show"); highlight.clearLayers().addLayer(L.circleMarker([feature.geometry.coordinates[1], feature.geometry.coordinates[0]], highlightStyle)); } }); $("#feature-list tbody").append(''); techno293Search.push({ name: layer.feature.properties.NAME, address: layer.feature.properties.ADDRESS1, source: "Techno293s", id: L.stamp(layer), lat: layer.feature.geometry.coordinates[1], lng: layer.feature.geometry.coordinates[0] }); } } }); $.getJSON("data/techno293.php", function (data) { techno293s.addData(data); map.addLayer(techno293Layer);});var foilLayer = L.geoJson(null); var foils = L.geoJson(null, { pointToLayer: function (feature, latlng) { return L.marker(latlng, { icon: L.icon({ iconUrl: "img/foil.png", iconSize: [24, 28], iconAnchor: [12, 28], popupAnchor: [0, -25] }), title: feature.properties.NAME, riseOnHover: true }); }, onEachFeature: function (feature, layer) { if (feature.properties) { var content = "
' + layer.feature.properties.NAME + '
" + "" + "" + "" + "" + "
Name" + feature.properties.NAME + "
Phone" + feature.properties.TEL + "
Address" + feature.properties.ADDRESS1 + ", " + feature.properties.CITY + "
+ info
"; layer.on({ click: function (e) { $("#feature-title").html(feature.properties.NAME); $("#feature-info").html(content); $("#featureModal").modal("show"); highlight.clearLayers().addLayer(L.circleMarker([feature.geometry.coordinates[1], feature.geometry.coordinates[0]], highlightStyle)); } }); $("#feature-list tbody").append(''); foilSearch.push({ name: layer.feature.properties.NAME, address: layer.feature.properties.ADDRESS1, source: "Foils", id: L.stamp(layer), lat: layer.feature.geometry.coordinates[1], lng: layer.feature.geometry.coordinates[0] }); } } }); $.getJSON("data/foil.php", function (data) { foils.addData(data); map.addLayer(foilLayer);});var adaptadoLayer = L.geoJson(null); var adaptados = L.geoJson(null, { pointToLayer: function (feature, latlng) { return L.marker(latlng, { icon: L.icon({ iconUrl: "img/adaptado.png", iconSize: [24, 28], iconAnchor: [12, 28], popupAnchor: [0, -25] }), title: feature.properties.NAME, riseOnHover: true }); }, onEachFeature: function (feature, layer) { if (feature.properties) { var content = "
' + layer.feature.properties.NAME + '
" + "" + "" + "" + "" + "
Name" + feature.properties.NAME + "
Phone" + feature.properties.TEL + "
Address" + feature.properties.ADDRESS1 + ", " + feature.properties.CITY + "
+ info
"; layer.on({ click: function (e) { $("#feature-title").html(feature.properties.NAME); $("#feature-info").html(content); $("#featureModal").modal("show"); highlight.clearLayers().addLayer(L.circleMarker([feature.geometry.coordinates[1], feature.geometry.coordinates[0]], highlightStyle)); } }); $("#feature-list tbody").append(''); adaptadoSearch.push({ name: layer.feature.properties.NAME, address: layer.feature.properties.ADDRESS1, source: "Adaptados", id: L.stamp(layer), lat: layer.feature.geometry.coordinates[1], lng: layer.feature.geometry.coordinates[0] }); } } }); $.getJSON("data/adaptado.php", function (data) { adaptados.addData(data); map.addLayer(adaptadoLayer);});var shopLayer = L.geoJson(null); var shops = L.geoJson(null, { pointToLayer: function (feature, latlng) { return L.marker(latlng, { icon: L.icon({ iconUrl: "img/shop.png", iconSize: [24, 28], iconAnchor: [12, 28], popupAnchor: [0, -25] }), title: feature.properties.NAME, riseOnHover: true }); }, onEachFeature: function (feature, layer) { if (feature.properties) { var content = "
' + layer.feature.properties.NAME + '
" + "" + "" + "" + "" + "
Name" + feature.properties.NAME + "
Phone" + feature.properties.TEL + "
Address" + feature.properties.ADDRESS1 + ", " + feature.properties.CITY + "
+ info
"; layer.on({ click: function (e) { $("#feature-title").html(feature.properties.NAME); $("#feature-info").html(content); $("#featureModal").modal("show"); highlight.clearLayers().addLayer(L.circleMarker([feature.geometry.coordinates[1], feature.geometry.coordinates[0]], highlightStyle)); } }); $("#feature-list tbody").append(''); shopSearch.push({ name: layer.feature.properties.NAME, address: layer.feature.properties.ADDRESS1, source: "Shops", id: L.stamp(layer), lat: layer.feature.geometry.coordinates[1], lng: layer.feature.geometry.coordinates[0] }); } } }); $.getJSON("data/shop.php", function (data) { shops.addData(data); map.addLayer(shopLayer);}); map = L.map("map", { zoom: 2, center: [35.729569, -8.723145], layers: [cartoLight, markerClusters, highlight], zoomControl: true, attributionControl: false }); /* Layer control listeners that allow for a single markerClusters layer */ map.on("overlayadd", function(e) { if (e.layer === windLayer) {markerClusters.addLayer(winds);syncSidebar();}if (e.layer === funboardLayer) {markerClusters.addLayer(funboards);syncSidebar();}if (e.layer === raceboardLayer) {markerClusters.addLayer(raceboards);syncSidebar();}if (e.layer === rsxLayer) {markerClusters.addLayer(rsxs);syncSidebar();}if (e.layer === wavesLayer) {markerClusters.addLayer(wavess);syncSidebar();}if (e.layer === techno293Layer) {markerClusters.addLayer(techno293s);syncSidebar();}if (e.layer === foilLayer) {markerClusters.addLayer(foils);syncSidebar();}if (e.layer === adaptadoLayer) {markerClusters.addLayer(adaptados);syncSidebar();}if (e.layer === shopLayer) {markerClusters.addLayer(shops);syncSidebar();} }); map.on("overlayremove", function(e) { if (e.layer === windLayer) {markerClusters.removeLayer(winds);syncSidebar();}if (e.layer === funboardLayer) {markerClusters.removeLayer(funboards);syncSidebar();}if (e.layer === raceboardLayer) {markerClusters.removeLayer(raceboards);syncSidebar();}if (e.layer === rsxLayer) {markerClusters.removeLayer(rsxs);syncSidebar();}if (e.layer === wavesLayer) {markerClusters.removeLayer(wavess);syncSidebar();}if (e.layer === techno293Layer) {markerClusters.removeLayer(techno293s);syncSidebar();}if (e.layer === foilLayer) {markerClusters.removeLayer(foils);syncSidebar();}if (e.layer === adaptadoLayer) {markerClusters.removeLayer(adaptados);syncSidebar();}if (e.layer === shopLayer) {markerClusters.removeLayer(shops);syncSidebar();} }); /* Filter sidebar feature list to only show features in current map bounds */ map.on("moveend", function (e) { syncSidebar(); }); /* Clear feature highlight when map is clicked */ map.on("click", function(e) { highlight.clearLayers(); }); /* GPS enabled geolocation control set to follow the user's location */ var locateControl = L.control.locate({ position: "bottomright", drawCircle: true, follow: true, setView: true, keepCurrentZoomLevel: true, markerStyle: { weight: 1, opacity: 0.8, fillOpacity: 0.8 }, circleStyle: { weight: 1, clickable: false }, icon: "fa fa-location-arrow", metric: false, strings: { title: "My location", popup: "You are within {distance} {unit} from this point", outsideMapBoundsMsg: "You seem located outside the boundaries of the map" }, locateOptions: { maxZoom: 18, watch: true, enableHighAccuracy: true, maximumAge: 10000, timeout: 10000 } }).addTo(map); /* Larger screens get expanded layer control and visible sidebar */ if (document.body.clientWidth <= 767) { var isCollapsed = true; } else { var isCollapsed = false; } var baseLayers = { "Mapa base": cartoLight, "Imagen aerea": usgsImagery }; var groupedOverlays = { "Tipos": { " wind": windLayer," funboard": funboardLayer," raceboard": raceboardLayer," rsx": rsxLayer," waves": wavesLayer," techno293": techno293Layer," foil": foilLayer," adaptado": adaptadoLayer," shop": shopLayer } }; var layerControl = L.control.groupedLayers(baseLayers, groupedOverlays, { collapsed: isCollapsed }).addTo(map); /* Highlight search box text on click */ $("#searchbox").click(function () { $(this).select(); }); /* Prevent hitting enter from refreshing the page */ $("#searchbox").keypress(function (e) { if (e.which == 13) { e.preventDefault(); } }); $("#featureModal").on("hidden.bs.modal", function (e) { $(document).on("mouseout", ".feature-row", clearHighlight); }); /* Typeahead search functionality */ $(document).one("ajaxStop", function () { $("#loading").hide(); sizeLayerControl(); featureList = new List("features", {valueNames: ["feature-name"]}); featureList.sort("feature-name", {order:"asc"}); var windsBH = new Bloodhound({name: "Winds",datumTokenizer: function (d) {return Bloodhound.tokenizers.whitespace(d.name);},queryTokenizer: Bloodhound.tokenizers.whitespace,local: windSearch,limit: 10});var funboardsBH = new Bloodhound({name: "Funboards",datumTokenizer: function (d) {return Bloodhound.tokenizers.whitespace(d.name);},queryTokenizer: Bloodhound.tokenizers.whitespace,local: funboardSearch,limit: 10});var raceboardsBH = new Bloodhound({name: "Raceboards",datumTokenizer: function (d) {return Bloodhound.tokenizers.whitespace(d.name);},queryTokenizer: Bloodhound.tokenizers.whitespace,local: raceboardSearch,limit: 10});var rsxsBH = new Bloodhound({name: "Rsxs",datumTokenizer: function (d) {return Bloodhound.tokenizers.whitespace(d.name);},queryTokenizer: Bloodhound.tokenizers.whitespace,local: rsxSearch,limit: 10});var wavessBH = new Bloodhound({name: "Wavess",datumTokenizer: function (d) {return Bloodhound.tokenizers.whitespace(d.name);},queryTokenizer: Bloodhound.tokenizers.whitespace,local: wavesSearch,limit: 10});var techno293sBH = new Bloodhound({name: "Techno293s",datumTokenizer: function (d) {return Bloodhound.tokenizers.whitespace(d.name);},queryTokenizer: Bloodhound.tokenizers.whitespace,local: techno293Search,limit: 10});var foilsBH = new Bloodhound({name: "Foils",datumTokenizer: function (d) {return Bloodhound.tokenizers.whitespace(d.name);},queryTokenizer: Bloodhound.tokenizers.whitespace,local: foilSearch,limit: 10});var adaptadosBH = new Bloodhound({name: "Adaptados",datumTokenizer: function (d) {return Bloodhound.tokenizers.whitespace(d.name);},queryTokenizer: Bloodhound.tokenizers.whitespace,local: adaptadoSearch,limit: 10});var shopsBH = new Bloodhound({name: "Shops",datumTokenizer: function (d) {return Bloodhound.tokenizers.whitespace(d.name);},queryTokenizer: Bloodhound.tokenizers.whitespace,local: shopSearch,limit: 10}); var geonamesBH = new Bloodhound({ name: "GeoNames", datumTokenizer: function (d) { return Bloodhound.tokenizers.whitespace(d.name); }, queryTokenizer: Bloodhound.tokenizers.whitespace, remote: { url: "http://api.geonames.org/searchJSON?username=bootleaf&featureClass=P&maxRows=5&countryCode=US&name_startsWith=%QUERY", filter: function (data) { return $.map(data.geonames, function (result) { return { name: result.name + ", " + result.adminCode1, lat: result.lat, lng: result.lng, source: "GeoNames" }; }); }, ajax: { beforeSend: function (jqXhr, settings) { settings.url += "&east=" + map.getBounds().getEast() + "&west=" + map.getBounds().getWest() + "&north=" + map.getBounds().getNorth() + "&south=" + map.getBounds().getSouth(); $("#searchicon").removeClass("fa-search").addClass("fa-refresh fa-spin"); }, complete: function (jqXHR, status) { $('#searchicon').removeClass("fa-refresh fa-spin").addClass("fa-search"); } } }, limit: 10 }); windsBH.initialize();funboardsBH.initialize();raceboardsBH.initialize();rsxsBH.initialize();wavessBH.initialize();techno293sBH.initialize();foilsBH.initialize();adaptadosBH.initialize();shopsBH.initialize(); geonamesBH.initialize(); /* instantiate the typeahead UI */ $("#searchbox").typeahead({ minLength: 3, highlight: true, hint: false }, {name: "Winds",displayKey: "name",source: windsBH.ttAdapter(),templates: {header: "

 winds

",suggestion: Handlebars.compile(["{{name}}
 {{address}}"].join(""))}},{name: "Funboards",displayKey: "name",source: funboardsBH.ttAdapter(),templates: {header: "

 funboards

",suggestion: Handlebars.compile(["{{name}}
 {{address}}"].join(""))}},{name: "Raceboards",displayKey: "name",source: raceboardsBH.ttAdapter(),templates: {header: "

 raceboards

",suggestion: Handlebars.compile(["{{name}}
 {{address}}"].join(""))}},{name: "Rsxs",displayKey: "name",source: rsxsBH.ttAdapter(),templates: {header: "

 rsxs

",suggestion: Handlebars.compile(["{{name}}
 {{address}}"].join(""))}},{name: "Wavess",displayKey: "name",source: wavessBH.ttAdapter(),templates: {header: "

 wavess

",suggestion: Handlebars.compile(["{{name}}
 {{address}}"].join(""))}},{name: "Techno293s",displayKey: "name",source: techno293sBH.ttAdapter(),templates: {header: "

 techno293s

",suggestion: Handlebars.compile(["{{name}}
 {{address}}"].join(""))}},{name: "Foils",displayKey: "name",source: foilsBH.ttAdapter(),templates: {header: "

 foils

",suggestion: Handlebars.compile(["{{name}}
 {{address}}"].join(""))}},{name: "Adaptados",displayKey: "name",source: adaptadosBH.ttAdapter(),templates: {header: "

 adaptados

",suggestion: Handlebars.compile(["{{name}}
 {{address}}"].join(""))}},{name: "Shops",displayKey: "name",source: shopsBH.ttAdapter(),templates: {header: "

 shops

",suggestion: Handlebars.compile(["{{name}}
 {{address}}"].join(""))}}, { name: "GeoNames", displayKey: "name", source: geonamesBH.ttAdapter(), templates: { header: "

 GeoNames

" } }).on("typeahead:selected", function (obj, datum) { if (datum.source === "Winds") {if (!map.hasLayer(windLayer)) {map.addLayer(windLayer);}map.setView([datum.lat, datum.lng], 17);if (map._layers[datum.id]) {map._layers[datum.id].fire("click");} }if (datum.source === "Funboards") {if (!map.hasLayer(funboardLayer)) {map.addLayer(funboardLayer);}map.setView([datum.lat, datum.lng], 17);if (map._layers[datum.id]) {map._layers[datum.id].fire("click");} }if (datum.source === "Raceboards") {if (!map.hasLayer(raceboardLayer)) {map.addLayer(raceboardLayer);}map.setView([datum.lat, datum.lng], 17);if (map._layers[datum.id]) {map._layers[datum.id].fire("click");} }if (datum.source === "Rsxs") {if (!map.hasLayer(rsxLayer)) {map.addLayer(rsxLayer);}map.setView([datum.lat, datum.lng], 17);if (map._layers[datum.id]) {map._layers[datum.id].fire("click");} }if (datum.source === "Wavess") {if (!map.hasLayer(wavesLayer)) {map.addLayer(wavesLayer);}map.setView([datum.lat, datum.lng], 17);if (map._layers[datum.id]) {map._layers[datum.id].fire("click");} }if (datum.source === "Techno293s") {if (!map.hasLayer(techno293Layer)) {map.addLayer(techno293Layer);}map.setView([datum.lat, datum.lng], 17);if (map._layers[datum.id]) {map._layers[datum.id].fire("click");} }if (datum.source === "Foils") {if (!map.hasLayer(foilLayer)) {map.addLayer(foilLayer);}map.setView([datum.lat, datum.lng], 17);if (map._layers[datum.id]) {map._layers[datum.id].fire("click");} }if (datum.source === "Adaptados") {if (!map.hasLayer(adaptadoLayer)) {map.addLayer(adaptadoLayer);}map.setView([datum.lat, datum.lng], 17);if (map._layers[datum.id]) {map._layers[datum.id].fire("click");} }if (datum.source === "Shops") {if (!map.hasLayer(shopLayer)) {map.addLayer(shopLayer);}map.setView([datum.lat, datum.lng], 17);if (map._layers[datum.id]) {map._layers[datum.id].fire("click");} } if (datum.source === "GeoNames") { map.setView([datum.lat, datum.lng], 14); } if ($(".navbar-collapse").height() > 50) { $(".navbar-collapse").collapse("hide"); } }).on("typeahead:opened", function () { $(".navbar-collapse.in").css("max-height", $(document).height() - $(".navbar-header").height()); $(".navbar-collapse.in").css("height", $(document).height() - $(".navbar-header").height()); }).on("typeahead:closed", function () { $(".navbar-collapse.in").css("max-height", ""); $(".navbar-collapse.in").css("height", ""); }); $(".twitter-typeahead").css("position", "static"); $(".twitter-typeahead").css("display", "block"); }); // Leaflet patch to make layer control scrollable on touch browsers var container = $(".leaflet-control-layers")[0]; if (!L.Browser.touch) { L.DomEvent .disableClickPropagation(container) .disableScrollPropagation(container); } else { L.DomEvent.disableClickPropagation(container); }
' + layer.feature.properties.NAME + '