\/div>\n\n
Mensa und Cafeteria am Medizincampus<\/p> \n \n \n
Liebigstra\u00dfe 23\/25
04103 Leipzig<\/p> \n \n \n\n
\u00d6ffnungszeiten<\/p>\n\n
Cafeteria<\/p>
Montag<\/strong> - Freitag<\/strong> gerade geschlossen<\/span><\/p> Mensa<\/p> Montag<\/strong> - Freitag<\/strong> gerade geschlossen<\/span><\/p> <\/div>\n \n \n <\/div>\n<\/div>\n"}}] }; const checkboxes = document.querySelectorAll('#' + mapId + ' #category-selector input[name="categories"]'); initialAllSelected = checkboxes.length === Array.from(checkboxes).filter(c => c.checked).length; let map = new mapboxgl.Map({ container: mapId, style: 'mapbox://styles/patrikphan/clnvnxy8t002k01pk4ryo7h1v', zoom: 12, center: [12.371360, 51.339690] }); map.on('load', () => { mapLocations.features.forEach(function(feature) { let iconUrl = feature.properties.icon; let iconId = 'icon-' + feature.properties.category_id; if (iconId !== 'default' && !loadedIcons[iconId]) { map.loadImage(iconUrl, function(error, image) { if (error) throw error; if (!map.hasImage(iconId)) { map.addImage(iconId, image); loadedIcons[iconId] = true; } }); } }); mapLocations.features = adjustOverlappingMarkers(mapLocations.features); map.addSource('places', { 'type': 'geojson', 'data': mapLocations }); map.addLayer({ 'id': 'places', 'type': 'symbol', 'source': 'places', 'layout': { 'icon-image': ['concat', 'icon-', ['get', 'category_id']], 'icon-size': 1, 'icon-allow-overlap': true, } }); map.addControl(new mapboxgl.FullscreenControl(), 'top-left'); map.addControl(new mapboxgl.NavigationControl(), 'top-left'); const toggleElement = document.querySelector('#' + mapId + ' .js-toggle-map-filter'); if (toggleElement) { toggleElement.style.display = 'block'; toggleElement.addEventListener('click', () => { const sidebarElement = document.querySelector('#' + mapId + ' .sidebar'); if (sidebarElement) { sidebarElement.classList.toggle('show-for-large'); } }); } const popup = new mapboxgl.Popup({ offset: 25, closeButton: false, closeOnClick: false }); map.on('mouseenter', 'places', function(e) { map.getCanvas().style.cursor = 'pointer'; const coordinates = e.features[0].geometry.coordinates.slice(); const description = e.features[0].properties.title; popup.setLngLat(coordinates) .setHTML(description) .addTo(map); }); map.on('click', 'places', (e) => { const sidebar = document.querySelector('#' + mapId + ' .sidebar'); if (sidebar) { sidebar.classList.remove('show-for-large'); } const locationDetails = document.createElement('div'); locationDetails.className = 'map-card location-details'; locationDetails.innerHTML = e.features[0].properties.details; const closeButton = document.createElement('button'); closeButton.type = 'button'; closeButton.className = 'icon icon-x-circle'; closeButton.innerHTML = 'Schließen'; closeButton.onclick = function() { sidebar.removeChild(locationDetails); }; locationDetails.appendChild(closeButton); const locationDetailCards = sidebar.querySelectorAll('.location-details'); locationDetailCards.forEach((card) => { sidebar.removeChild(card); }); sidebar.appendChild(locationDetails); }); map.on('mouseleave', 'places', function() { map.getCanvas().style.cursor = ''; popup.remove(); }); }); function adjustOverlappingMarkers(features) { let seenCoordinates = {}; return features.map(feature => { const key = feature.geometry.coordinates.join(','); if (!seenCoordinates[key]) { seenCoordinates[key] = { count: 0, index: 0 }; } seenCoordinates[key].count += 1; const count = seenCoordinates[key].count; const index = seenCoordinates[key].index++; if (count > 1) { const offset = 0.00009 * (index - (count - 1) / 2); const newLongitude = parseFloat(feature.geometry.coordinates[0]) + offset; const newCoordinates = [ newLongitude, feature.geometry.coordinates[1] ]; return { ...feature, geometry: { ...feature.geometry, coordinates: newCoordinates } }; } return feature; }); } function updateMap() { if (!mapInitialized) { return; } let selectedCategories = Array.from(document.querySelectorAll('#' + mapId + ' #category-selector input[name="categories"]:checked')).map(checkbox => parseInt(checkbox.value)); let filteredData = { 'type': 'FeatureCollection', 'features': mapLocations.features.filter(feature => selectedCategories.includes(feature.properties.category_id)) }; map.getSource('places').setData(filteredData); } checkboxes.forEach((checkbox) => { checkbox.addEventListener('change', function() { if (initialAllSelected) { checkboxes.forEach(c => { if (c !== this) { c.checked = false; } else { c.checked = true; } }); initialAllSelected = false; } else { initialAllSelected = checkboxes.length === Array.from(checkboxes).filter(c => c.checked).length; } updateMap(); }); }); mapInitialized = true; }; })(); Herr Schiller
09:00 - 15:00
<\/p>
10:45 - 14:00
<\/p>Dein Ansprechpartner
Ausgezeichnet als
veganfreundliche Mensa