if (typeof window.contentMaps === 'undefined') { window.contentMaps = {}; window.initialMapBounds = {}; } if (typeof window.markerData === 'undefined') { window.markerData = {}; } if (!markerData[1]) { markerData[1] = {}; } function initMapbox_1(){ mapboxgl.accessToken = 'pk.eyJ1IjoibGF6eXRyaXBzIiwiYSI6ImNsaTJ4anh2MTA5NDYzZW85ODJmMm45ZzcifQ.9u5pN47V7SsoFwF6_Pw5bQ'; const contentMap_1 = new mapboxgl.Map({ container: 'contentMap_1', style: 'mapbox://styles/mapbox/streets-v11', center: [-112.39321647596314, 37.711170030408844], zoom: 6, cooperativeGestures: true }); window.contentMaps[1] = contentMap_1; var bounds_1 = new mapboxgl.LngLatBounds(); const contentStart_1_1 = [-115.14529164466407, 36.183521426368664]; const contentStart_1_1_geoson = { 'type': 'FeatureCollection', 'features': [{ 'type': 'Feature', 'geometry': { 'type': 'Point', 'coordinates': contentStart_1_1 }, 'properties': { 'title': 'Start', 'description': 'Start point' } }] }; for (const feature of contentStart_1_1_geoson.features) { const el = document.createElement('div'); el.className = 'marker_start'; new mapboxgl.Marker(el, {offset: [0, -29]}).setLngLat(feature.geometry.coordinates).addTo(contentMap_1); } bounds_1.extend(contentStart_1_1); const contentFinish_1_2 = [-109.54775749461575, 38.57948761369352]; const contentFinish_1_2_geoson = { 'type': 'FeatureCollection', 'features': [{ 'type': 'Feature', 'geometry': { 'type': 'Point', 'coordinates': contentFinish_1_2 }, 'properties': { 'title': 'Finish', 'description': 'Finish point' } }] }; for (const feature of contentFinish_1_2_geoson.features) { const el = document.createElement('div'); el.className = 'marker_star'; new mapboxgl.Marker(el, {offset: [0, -29]}).setLngLat(feature.geometry.coordinates).addTo(contentMap_1); } bounds_1.extend(contentFinish_1_2); async function getRoute_1_0(start, finish, via) { const url = `https://api.mapbox.com/directions/v5/mapbox/driving/${start.join(',')};${via}${finish.join(',')}?alternatives=true&geometries=geojson&language=en&overview=full&steps=true&access_token=${mapboxgl.accessToken}`; const response = await fetch(url); const json = await response.json(); const data = json.routes[0]; const route = data.geometry.coordinates; const geojson = { type: 'Feature', properties: {}, geometry: { type: 'LineString', coordinates: route } }; for (const coord of route) { bounds_1.extend(coord); contentMap_1.fitBounds(bounds_1, {padding: {top: 60, bottom:60, left: 60, right: 60}}); } if (contentMap_1.getSource('route1_0')) { contentMap_1.getSource('route1_0').setData(geojson); } else { contentMap_1.addLayer({ id: 'route1_0', type: 'line', source: { type: 'geojson', data: geojson }, layout: { 'line-join': 'round', 'line-cap': 'round' }, paint: { 'line-color': '#0b7192', 'line-width': 5, 'line-opacity': 0.80 } }); } } const start_1_0 = [-115.14529164466, 36.183521426369]; const finish_1_0 = [-109.54775749462, 38.579487613694]; const via_1_0 = '-112.98647818898,37.200985579492;-111.49783072496,38.256697633914;-111.40444692729,38.308440925789;'; contentMap_1.on('load', async () => { await getRoute_1_0(start_1_0, finish_1_0, via_1_0); }); contentMap_1.fitBounds(bounds_1, {padding: {top: 60, bottom: 60, left: 60, right: 60}}); contentMap_1.fitBounds(bounds_1, {padding: {top: 60, bottom:60, left: 60, right: 60}}); var boundsSouthWest = bounds_1.getSouthWest(); var boundsNorthEast = bounds_1.getNorthEast(); initialMapBounds[1] = new mapboxgl.LngLatBounds(boundsSouthWest, boundsNorthEast); const visibleMapRoutes_1 = []; contentMaps[1].on('click', (e) => { if (!clickWasOnMarkerOrCard) { resetMarkersAndCards(1); } else { clickWasOnMarkerOrCard = false; } }); } var mapScriptCreated = 0; var mapCssCreated = 0; var mapScriptLoaded = 0; var mapCssLoaded = 0; var mapLoadList = []; function showLazyMap(fname) { if (mapScriptLoaded == 1 && mapCssLoaded == 1) { if (!mapLoadList.includes(fname)) { window[fname](); mapLoadList.push(fname); } } } (function fn() { var pics = document.querySelectorAll('.no-js-hide'); pics.forEach(function(pic) { pic.classList.toggle('no-js-hide'); }); var lazyImages = [].slice.call(document.querySelectorAll(".lazeeload")); if ("IntersectionObserver" in window) { const config = { root: null, rootMargin: '1000px', threshold: 0 }; let lazyImageObserver = new IntersectionObserver(function(entries, observer) { entries.forEach(function(entry) { if (entry.isIntersecting) { let lazyImage = entry.target; if (lazyImage.dataset.src) {lazyImage.src = lazyImage.dataset.src;} if (lazyImage.dataset.srcset) {lazyImage.srcset = lazyImage.dataset.srcset;} if (lazyImage.dataset.map) { const fname = "initMapbox_"+lazyImage.dataset.map; if (mapScriptLoaded == 0) { let script = document.createElement('script'); script.async=true; script.defer=true; script.src = "https://api.mapbox.com/mapbox-gl-js/v3.0.0/mapbox-gl.js"; script.onload = function(){ mapScriptLoaded = 1; showLazyMap(fname); } document.head.appendChild(script); mapScriptCreated = 1; let css = document.createElement('link'); css.rel = "stylesheet"; css.href = "https://api.mapbox.com/mapbox-gl-js/v3.0.0/mapbox-gl.css"; css.onload = function(){ mapCssLoaded = 1; showLazyMap(fname); } document.head.appendChild(css); mapCssCreated = 1; } else { if (typeof window[fname] === 'function') { window[fname](); } showLazyMap(fname); } } lazyImage.classList.remove("no-js-hide"); lazyImage.classList.remove("lazeeload"); lazyImageObserver.unobserve(lazyImage); } }); }, config); lazyImages.forEach(function(lazyImage) { lazyImageObserver.observe(lazyImage); lazyImage.classList.add("lazeeload-activated"); }); } else { let active = false; const lazyLoad = function() { if (active === false) { active = true; setTimeout(function() { lazyImages.forEach(function(lazyImage) { if ((lazyImage.getBoundingClientRect().top <= window.innerHeight+1000 && lazyImage.getBoundingClientRect().bottom >= 0) && getComputedStyle(lazyImage).display !== "none") { if (lazyImage.dataset.src) lazyImage.src = lazyImage.dataset.src; if (lazyImage.dataset.srcset) lazyImage.srcset = lazyImage.dataset.srcset; if (lazyImage.dataset.onload) lazyImage.onload = lazyImage.dataset.onload; lazyImage.classList.remove("lazeeload"); lazyImages = lazyImages.filter(function(image) { return image !== lazyImage; }); if (lazyImages.length === 0) { document.removeEventListener("scroll", lazyLoad); window.removeEventListener("resize", lazyLoad); window.removeEventListener("orientationchange", lazyLoad); } } }); active = false; }, 200); } }; document.addEventListener("scroll", lazyLoad); window.addEventListener("resize", lazyLoad); window.addEventListener("orientationchange", lazyLoad); } var lazyImages = [].slice.call(document.querySelectorAll(".lazeeload")); i=1; lazyImages.forEach(function(lazyImage) { if (!(lazyImage.classList.contains("lazeeload-activated"))) { if (lazyImage.dataset.src) lazyImage.src = lazyImage.dataset.src; if (lazyImage.dataset.srcset) lazyImage.srcset = lazyImage.dataset.srcset; lazyImage.classList.remove("lazeeload"); } }); })();