/* * 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/. */ function leafletMap() { var map = L.map('mapbox', { zoomSnap: 0.25, zoomControl: false, attributionControl: false }); map.placelayer = L.layerGroup(); map.placelayer.addTo(map); $("#mapbox").css("background-color", "#6cdc9b"); $("#mapbox").css("background-image", "url(img/map/ground.png)"); // Prevent roads and stuff from appearing above UI $("#mapbox").css("z-index", "-9999"); var openmaptilesUrl = SETTINGS['map_pbf_url']; var vectorTileStyling = { water: { fill: true, weight: 1, fillColor: '#76FFFF', color: '#76FFFF', fillOpacity: 1, opacity: 1 }, admin: [], waterway: { weight: 1, fillColor: '#76FFFF', color: '#76FFFF', fillOpacity: 1, opacity: 1 }, landcover: { fill: true, weight: 1, fillColor: '#62CF80', color: '#62CF80', fillOpacity: 0.5, opacity: 0.5, }, landuse: [], park: { fill: true, weight: 1, fillColor: '#62CF80', color: '#62CF80', fillOpacity: 0.5, opacity: 0.5 }, boundary: [], aeroway: [], transportation: { weight: 2, fillColor: '#FEC481', color: '#FEC481', fillOpacity: 1, opacity: 1, }, building: { fill: true, weight: 1, fillColor: '#c0e3e9', color: '#c0e3e9', fillOpacity: 0.5, opacity: 0.5 }, water_name: [], transportation_name: [], place: [], housenumber: [], poi: [], country_name: [], marine_name: [], state_name: [], place_name: [], waterway_name: [], poi_name: [], road_name: [], housenum_name: [] }; var openmaptilesVectorTileOptions = { rendererFactory: L.svg.tile, attribution: '', vectorTileLayerStyles: vectorTileStyling, maxNativeZoom: 14, maxZoom: 20 }; var openmaptilesPbfLayer = L.vectorGrid.protobuf(openmaptilesUrl, openmaptilesVectorTileOptions).addTo(map); map.setView({lat: 0, lng: 0}, 1); map.setMapHeading = function (heading) { } map.setMapLocation = function (latitude, longitude) { map.setView({ lng: longitude, lat: latitude }); } map.updatePlaceLayer = function (data) { map.placelayer.clearLayers(); data.features.forEach(function (place) { var color = "white"; if (place.properties.teamid != null && place.properties.teamid > 0) { color = SETTINGS["teams"][place.properties.teamid]["color"]; } var icon = L.icon({ iconUrl: "img/place/" + color + ".png", iconSize: [50, 50], iconAnchor: [25, 10] }); L.marker( [ place.geometry.coordinates[1], place.geometry.coordinates[0] ], { icon: icon }) .on('click', function () { openPlace(place.properties.id, place.properties.name); }) .addTo(map.placelayer); }); } map.animateMapIn = function (latitude, longitude, zoom, heading) { if (typeof zoom == 'undefined') { zoom = 17; } if (typeof heading == 'undefined') { heading = 0; } map.flyTo([latitude, longitude], zoom); // Set min zoom after some time to fly in setTimeout(function () { map.setMinZoom(14); map.setZoom(zoom); }, 1000); } return map; }