/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ var map = null; function createMap() { if (mapboxgl.supported()) { $("#mapbox").css("display", ""); map = maplibreMap(); centerMapOnPackage(); } else { console.log("maplibre-gl not supported, disabling map"); $("#mapbox").css("display", "none"); } } function centerMapOnPackage() { var latitude = $("#mapbox").data("latitude"); var longitude = $("#mapbox").data("longitude"); var accurate = $("#mapbox").data("accurate") == "true"; map.removeMarkers(); map.addMarker(latitude, longitude); map.animateMapIn(latitude, longitude, (accurate ? 14 : 10)); } /** * Destroy and re-create the map. * @returns {undefined} */ function reloadMap() { try { if (map != null && typeof map != 'undefined') { map.off(); map.remove(); map = null; if (document.getElementById("mapbox") != null) { createMap(); } else { console.log("Info", "Not re-creating map because #mapbox is not in DOM. Creation will be automatically triggered when map page is loaded."); } } else { createMap(); } } catch (ex) { // oh well ¯\(°_o)/¯ console.log(ex); $("#mapbox").css("display", "none"); } } function setMapLocation(latitude, longitude) { if (map == null) { return; } map.setMapLocation(latitude, longitude); } function animateMapIn(latitude, longitude, zoom, heading) { if (map == null) { return; } if (typeof zoom == 'undefined') { zoom = 10; } if (typeof heading == 'undefined') { heading = 0; } map.animateMapIn(latitude, longitude, zoom, heading); }