Legend
Murals
Projection Installations
Light Scultpture & Performance
Live Entertainment
Lighting Effects
Existing Features
Other
Restrooms
Transit Centers
Hospitality
ArtsWave R&R
Food Truck
Murals
Alley Jam
BLINK OASIS
Case Maclaim Mural
Cincinnati
Cincinnati
Danke
EUTHENIA
Flow State
Justine
L'Amour Supreme Mural
LINEAGE
mr.june
mr.june
Mural
Mural
Mural
Mural
Mural 84.51
Mural by Novel and Celine Carey
Sister City - Mural
Still Shines Through Mural
Untitled
Who Dey!
Projection Installations
A Picture's Worth of Light
Acts of Holding Dance
AD PACEM
Beyond the Visible Spectrum
BLINK OASIS
Care Bear
Cinemagic
Eco-nnections: Together
Future Connections
Graffmapping x Toy Heritage
Gylee Games
I am Ezz
In the Middle - Memorial Hall
In the Middle - Mother of God Church
Insane 51 & goDutch
Isolation/Unity/Community
Little Africa 1800
Massively Distributed
Mr. Dynamite
RA RA BOOM
See Yourself in Lights
Sister City - Projection Mapping
The Inside Out
The Manifold Potential - Contemporary Arts Center
To the Moon | American Building
Light Scultpture & Performance
Alleyology
Arcade of Light
Beamsplitter
BEELINE
Cloudy Night
Crescendo
Disco Ball Y'all
DogFish
Dome of Reflection
Drone Show Viewing Area - Presented by CVG Airport
Drone Show Viewing Area - Presented by CVG Airport
Electrifi
Enchanted Forest
Entwined Meadow
Eyes Up Drone Show - Presented by altafiber
Fences
Florange
Grove
HYBYCOZO
Linger
Misterie
New Lines
Parastella
POOF!
Radiant Rose
String Theory for Dummies
Takes A Village
The Full Set THEIR FLOWERS Edition
Timisien
Together
Toroid
Tunnel
Twist
Windy Land
Live Entertainment
CSO PROOF: SUN DOGS
Fountain Squre Music Stage | Downtown Cincinnati
Legacy: A Concert for Cincinnati
Music Stage | Court Street
Music Stage | Covington
Music Stage | Downtown
Music Stage | Hanna Park
Music Stage | The Banks
Music Stage | Washington Park
Music Stage | Ziegler Park
Second Sunday on Main Stage
Walnut Hills High School Music, Theater, and Art
Lighting Effects
21C Hotel
3rd & Main
6th Street Bridge Underpass Lighting
Ascent Lighting Feature
Faile Mural Lighting Effects
Freedom Center
Government Square
Hamilton County Courthouse
Kenton County Public Library Lighting Effect
London Police Mural Lighting Effect
The Golden Garden at the Black Music Walk of Fame
TQL Stadium
Existing Features
Cascading Steps and Fountains
Freedom Way
GABP Jumbotron
Great American Tower
Washington Park Fountains
Other
Art Academy of Cincinnati
Asianati Night Market
BlaCk OWned Outerwear
BLINK Limelight Store
Braxton Brewing Lumen Lounge
Breonna's Garden - Daytime AR Experience
Breonna's Garden - Nighttime VR Experience
Cincy Nice Social House
Mobile Roller Rink
Originalitees
Restrooms
Restrooms
Restrooms
Restrooms
Restrooms
Restrooms
Restrooms
Transit Centers
Covington Transit Center
Riverfront Transit Center
Hospitality
Hospitality
Hospitality
Hospitality
Hospitality Zone
Hospitality Zone
Hospitality Zone
ArtsWave R&R
ArtsWave R&R
Food Truck
Adena’s Beefstroll
Cookiefection
Cups ‘N Cones
Cupzilla
Delightful Dining
Dewey's Pizza
El Chevito (Fri-Sun)
El Chevito (Thursday Only)
Holey Donuts!
Kabobske
LaRosa's Pizza
M.A.D.D. Mark’s (Fri-Sun)
M.A.D.D. Mark’s (Thursday Only)
Marty's Waffles
Mel's Soul Food
Off The Hook
Pretzelfuls llc
Quite Frankly
SugarSnap! Sweet Treats
Sweets & Meats
Texas Joe
The Cheesecakery
The Cheesecakery Coffee Food Truck
WeDoBBQ (Fri-Sun)
WeDoBBQ (Thursday Only)
' : '';var content_class = (location.image !== 'files/locations/featured/') ? ' has-image' : '';var has_link = (location.linked > 0);var button_link = ([1,2,3,4,5].includes(parseInt(location.category_id))) ? 'Details' : '';button_link += 'Directions';var sponsor_html = '';var html = '
' +image +'
' +'
' + location.category + '
' +'
' + location.title + '
' +location.artist_html +'
' + button_link +'
' +'
' +'
';var popup = new mapboxgl.Popup({offset: 50,maxWidth: 'none',id: location.id,anchor: 'center'}).setHTML(html);// marker popup opened (marker click)popup.on('open', function(e) {// Add 'selected' class to the marker//marker.getElement().classList.add('selected');window.scrollTo({ top: $('#locations-map').offset().top - 1, behavior: 'smooth' });//document.getElementById('map').dataset.zoom = 3;document.querySelectorAll('.zone-marker').forEach(el => el.classList.remove('active'));document.querySelectorAll('.marker').forEach(el => el.classList.remove('active'));// update list statuslet id = parseInt(e.target.options.id);current_location = id;/*let el = $('#map-list .location[data-id=' + id + ']');el.addClass('active');el.closest('.category').addClass('open');*/let marker = document.querySelector('.marker[data-id="' + id + '"]');set_zone(marker.dataset.zone);// fly to the individual locationmap.flyTo({center: e.target.getLngLat(),//pitch: (window.innerWidth > 500) ? 65 : 0,zoom: 17,bearing: -10,//(window.innerWidth > 500) ? zones[marker.dataset.zone]['zone_bearing'] : 0,duration: fly_speed});});popup.on('close', function(e) {var id = parseInt(e.target.options.id);let marker = document.querySelector('.marker[data-id="' + id + '"]');// jump back out to zone when closing//current_zone = null;set_zone(marker.dataset.zone);});/* --- Create Marker --- */var marker_elem = document.createElement('div');marker_elem.className = 'marker ' + data.color;// special icon typesif ([8,9,11,12,13].includes(parseInt(data.category_id))) marker_elem.className += ' custom';marker_elem.dataset.id = data.id;marker_elem.dataset.category = data.category_id;marker_elem.dataset.zone = data.zone;var img = new Image();img.src = 'images/icons/' + data.icon + '.svg';marker_elem.append(img);var marker = new mapboxgl.Marker(marker_elem).setLngLat(location.coords).addTo(map).setPopup(popup);marker.id = location.id;markers.push(marker);location.set_marker(marker);location.set_popup(popup);map_data.locations.push(location);// extend the overall bounds of the pinsbounds.extend(location.coords);}});// set the map bounds to contain all pinsmap.fitBounds(bounds, {duration: 0,pitch: 0,padding: 50,bearing: -10});// check for current locationif ('geolocation' in navigator) { // attempt to get locationnavigator.geolocation.getCurrentPosition(function(position) {// store user locationuser_coords = [position.coords.longitude, position.coords.latitude];// create a new bounds object to comparevar bounds_copy = new mapboxgl.LngLatBounds();for (pos in map_data.locations) {bounds_copy.extend(map_data.locations[pos].coords);}bounds_copy.extend(user_coords); // add the user position// check to see if the user is on siteif (bounds._ne.lng != bounds_copy._ne.lng) on_site = false;else if (bounds._ne.lat != bounds_copy._ne.lat) on_site = false;else if (bounds._sw.lng != bounds_copy._sw.lng) on_site = false;else if (bounds._sw.lat != bounds_copy._sw.lat) on_site = false;else {on_site = true;var map_zoom = map.getZoom();geolocate = new mapboxgl.GeolocateControl({positionOptions: {enableHighAccuracy: true},trackUserLocation: ($(window).width() < 500),showUserHeading: true,showAccuracyCircle: false,fitBoundsOptions: {maxZoom: map_zoom}});map.addControl(geolocate, 'bottom-right');// mapbox location event, track/storegeolocate.on('geolocate', function(pos) {var user_coords_copy = user_coords;user_coords = [pos.coords.longitude, pos.coords.latitude];});setTimeout(function() {$('.mapboxgl-ctrl-geolocate').click();}, 1000);}}, function(error) {}); }// click events for categories$('#map-list .category').click(function(ev) {$(this).toggleClass('open');});// click events for locations list$('#map-list .location').click(function(ev) {var id = $(this).data('id');$(this).addClass('active').siblings().removeClass('active');var location = get_location_by_id(id);remove_open_popups();location.marker.togglePopup();ev.stopPropagation();ev.preventDefault();});if ($('#map-list .location').length == 1) $('#map-list .location').click();function Location(data) {this.id = data.id;this.category_id = data.category_id;this.category = data.category;this.title = data.title;this.desc = data.desc;this.url = data.url;this.artist_html = data.artist_html ?? '';this.image = 'files/locations/featured/' + data.image;this.coords = [parseFloat(data.lng), parseFloat(data.lat)];this.zone = data.zone;this.popup = null;this.marker = null;this.set_marker = function(marker) {this.marker = marker;}this.set_popup = function(popup) {this.popup = popup;}this.has_coords = function() {if (this.coords[0] != 0 && this.coords[1] != 0) return true;else return false;}}function get_location_by_id(id) {var filter = map_data.locations.filter(l => l.id == id);return filter[0];}function remove_open_popups() {$('#map-list .location').removeClass('active');markers.forEach(function(marker) {if (marker.getPopup().isOpen()) marker.getPopup().remove();});}function set_zone(zone_id) {window.scrollTo({ top: $('#locations-map').offset().top - 1, behavior: 'smooth' });let bounds = new mapboxgl.LngLatBounds();locations.forEach(location => {if (location.zone == zone_id) bounds.extend([parseFloat(location.lng), parseFloat(location.lat)]);});let map_el = document.getElementById('map')map_el.dataset.zone = zone_id;// change bounds only when changing zonesif (current_zone != zone_id) {map.fitBounds(bounds, {duration: fly_speed,pitch: 0,//(window.innerWidth > 500) ? 45 : 0,padding: 0,bearing: -10 //(window.innerWidth > 500) ? zones[zone_id]['zone_bearing'] : 0});//map_el.dataset.zoom = 2;}let zone_img = document.getElementById('zone-image');zone_img.classList.add('show');zone_img.href = zones[zone_id]['sponsor_link'] ?? '#';zone_img.querySelectorAll('img').forEach(img => {if (img.dataset.id == zone_id) img.classList.add('show');else img.classList.remove('show');})// fade out inactive markers//map_el.querySelectorAll('.marker[data-zone="' + zone_id + '"]').forEach(marker => marker.classList.remove('fade'));//map_el.querySelectorAll('.marker:not([data-zone="' + zone_id + '"])').forEach(marker => marker.classList.add('fade'));current_zone = zone_id;map_zone_fills.forEach(fill => {map.setPaintProperty(fill, 'fill-opacity', (fill == 'zone-' + zone_id) ? .1 : .1);});map_zone_strokes.forEach(stroke => {map.setPaintProperty(stroke, 'line-opacity', (stroke == ('zone-line-' + zone_id)) ? 1 : .2);map.setPaintProperty(stroke, 'line-width', (stroke == ('zone-line-' + zone_id)) ? (window.innerWidth / 200) : (window.innerWidth / 400));});}function unset_zone() {if (current_zone != null) {let zoom = document.getElementById('map').dataset.zoom;let opacity = (zoom == 1) ? .5 : .25;map.setPaintProperty('zone-' + current_zone, 'fill-opacity', opacity);let line_opacity = (zoom == 1) ? 1 : .5;map.setPaintProperty('zone-line-' + current_zone, 'line-opacity', line_opacity);map.setPaintProperty('zone-line-' + current_zone, 'line-width', 4);current_zone = null;}document.getElementById('map').dataset.zone = '';map_zone_fills.forEach(fill => {map.setPaintProperty(fill, 'fill-opacity', .1);});map_zone_strokes.forEach(stroke => {map.setPaintProperty(stroke, 'line-opacity', 1);map.setPaintProperty(stroke, 'line-width', 4);});}/* --- Marker Z --- */var marker_z = locations.length;$('#map').on('mouseover', '.mapboxgl-marker', function(e) {e.target.style.zIndex = marker_z++;});setTimeout(() => {let marker = document.querySelector('.marker[data-id="100"]');console.log(marker.dataset.zone);if (marker) marker.click();}, 3000);});