// --- Nearby Stations Logic Start (Adapted from venues/detail_data.php) --- $nearby_stations = []; // Subway stations $display_stations = []; // KTX/SRT stations $subway_summary = null; $train_summary = null; // Use performance's venue data if (!empty($performance['venue_lat']) && !empty($performance['venue_lng']) && !empty($performance['venue_area'])) { $venue_lat = $performance['venue_lat']; $venue_lon = $performance['venue_lng']; $venue_area = $performance['venue_area']; // --- Subway Stations --- $subway_radius = ($venue_area === '수도권') ? 1 : 2; if (function_exists('get_nearby_subway_stations')) { $nearby_stations = get_nearby_subway_stations($conn, $venue_lat, $venue_lon, $subway_radius, $is_jp_domain); } // --- KTX/SRT Stations --- $ktx_station_most_lines = null; $ktx_station_nearest = null; $nearby_srt_station = null; $search_radius = ($venue_area === '수도권') ? 30 : 40; // KTX Logic 1: Most relevant lines $ktx_stations_candidates = []; $ktx_query_lines = " SELECT title, station_type, srt, latitude, longitude, ktx_line, ST_Distance_Sphere(point(?, ?), point(longitude, latitude)) / 1000 AS distance FROM train_stations WHERE station_type = 'ktx' AND ktx_line IS NOT NULL AND ktx_line != '' HAVING distance <= ? "; $stmt_ktx_lines = mysqli_prepare($conn, $ktx_query_lines); if ($stmt_ktx_lines) { mysqli_stmt_bind_param($stmt_ktx_lines, 'ddi', $venue_lon, $venue_lat, $search_radius); mysqli_stmt_execute($stmt_ktx_lines); $ktx_result_lines = mysqli_stmt_get_result($stmt_ktx_lines); while ($row = mysqli_fetch_assoc($ktx_result_lines)) { $lines = explode(',', trim($row['ktx_line'], ',')); $relevant_lines = ['ktx1', 'ktx3', 'ktx5', 'ktx6']; $count = 0; $found_lines = []; foreach ($lines as $line) { $trimmed_line = trim($line); if (in_array($trimmed_line, $relevant_lines) && !in_array($trimmed_line, $found_lines)) { $count++; $found_lines[] = $trimmed_line; } } if ($count > 0) { $row['relevant_line_count'] = min($count, 4); $ktx_stations_candidates[] = $row; } } mysqli_stmt_close($stmt_ktx_lines); if (!empty($ktx_stations_candidates)) { usort($ktx_stations_candidates, function($a, $b) { if ($a['relevant_line_count'] != $b['relevant_line_count']) { return $b['relevant_line_count'] <=> $a['relevant_line_count']; } return $a['distance'] <=> $b['distance']; }); $ktx_station_most_lines = $ktx_stations_candidates[0]; } } // KTX Logic 2: Nearest $ktx_query_nearest = " SELECT title, station_type, srt, latitude, longitude, ktx_line, ST_Distance_Sphere(point(?, ?), point(longitude, latitude)) / 1000 AS distance FROM train_stations WHERE station_type = 'ktx' HAVING distance <= ? ORDER BY distance ASC LIMIT 1"; $stmt_ktx_nearest = mysqli_prepare($conn, $ktx_query_nearest); if ($stmt_ktx_nearest) { mysqli_stmt_bind_param($stmt_ktx_nearest, 'ddi', $venue_lon, $venue_lat, $search_radius); mysqli_stmt_execute($stmt_ktx_nearest); $ktx_result_nearest = mysqli_stmt_get_result($stmt_ktx_nearest); $ktx_station_nearest = mysqli_fetch_assoc($ktx_result_nearest); mysqli_stmt_close($stmt_ktx_nearest); } // SRT Logic: Nearest $srt_query = " SELECT title, station_type, srt, latitude, longitude, ST_Distance_Sphere(point(?, ?), point(longitude, latitude)) / 1000 AS distance FROM train_stations WHERE station_type = 'srt' HAVING distance <= ? ORDER BY distance ASC LIMIT 1"; $stmt_srt = mysqli_prepare($conn, $srt_query); if ($stmt_srt) { mysqli_stmt_bind_param($stmt_srt, 'ddi', $venue_lon, $venue_lat, $search_radius); mysqli_stmt_execute($stmt_srt); $srt_result = mysqli_stmt_get_result($stmt_srt); $nearby_srt_station = mysqli_fetch_assoc($srt_result); mysqli_stmt_close($stmt_srt); } // Combine and filter train stations for display $added_titles = []; $icon_color = 'text-green-600'; if ($ktx_station_most_lines) { $station_info = $ktx_station_most_lines; $station_info['display_type'] = ($station_info['srt'] == 1) ? 'KTX/SRT' : 'KTX'; $station_info['icon_color'] = $icon_color; $display_stations[] = $station_info; $added_titles[] = $station_info['title']; } if ($ktx_station_nearest && !in_array($ktx_station_nearest['title'], $added_titles)) { $station_info = $ktx_station_nearest; $station_info['display_type'] = ($station_info['srt'] == 1) ? 'KTX/SRT' : 'KTX'; $station_info['icon_color'] = $icon_color; $display_stations[] = $station_info; $added_titles[] = $station_info['title']; } if ($nearby_srt_station) { if (!in_array($nearby_srt_station['title'], $added_titles)) { $station_info = $nearby_srt_station; $station_info['display_type'] = 'SRT'; $station_info['icon_color'] = $icon_color; $display_stations[] = $station_info; } else { foreach ($display_stations as $key => $station) { if ($station['title'] === $nearby_srt_station['title'] && $station['display_type'] === 'KTX') { $display_stations[$key]['display_type'] = 'KTX/SRT'; break; } } } } usort($display_stations, function($a, $b) { return $a['distance'] <=> $b['distance']; }); // Fallback: Find the absolute closest station if both arrays are still empty if (empty($nearby_stations) && empty($display_stations)) { $fallback_query = " SELECT type, title, distance, line_info, srt_flag, lat, lng FROM ( SELECT 'subway' AS type, station_name AS title, (6371 * ACOS(COS(RADIANS(?)) * COS(RADIANS(lat)) * COS(RADIANS(lng) - RADIANS(?)) + SIN(RADIANS(?)) * SIN(RADIANS(lat)))) AS distance, line_names AS line_info, NULL AS srt_flag, lat, lng FROM release_subway UNION ALL SELECT station_type AS type, title, (6371 * ACOS(COS(RADIANS(?)) * COS(RADIANS(latitude)) * COS(RADIANS(longitude) - RADIANS(?)) + SIN(RADIANS(?)) * SIN(RADIANS(latitude)))) AS distance, ktx_line AS line_info, srt AS srt_flag, latitude AS lat, longitude AS lng FROM train_stations WHERE station_type IN ('ktx', 'srt') ) AS combined_stations ORDER BY distance ASC LIMIT 1"; $stmt_fallback = mysqli_prepare($conn, $fallback_query); if ($stmt_fallback) { mysqli_stmt_bind_param($stmt_fallback, 'dddddd', $venue_lat, $venue_lon, $venue_lat, $venue_lat, $venue_lon, $venue_lat); mysqli_stmt_execute($stmt_fallback); $fallback_result = mysqli_stmt_get_result($stmt_fallback); $closest_station = mysqli_fetch_assoc($fallback_result); mysqli_stmt_close($stmt_fallback); if ($closest_station) { if ($closest_station['type'] === 'subway') { $station_data = ['station_name' => $closest_station['title'], 'distance' => $closest_station['distance'], 'line_names' => $closest_station['line_info'], 'lat' => $closest_station['lat'], 'lng' => $closest_station['lng']]; if ($is_jp_domain) { if (!function_exists('trans_station')) { @include_once '/var/www/stagepick/includes/languages/ja_station.php'; } $station_data['station_name_jp'] = function_exists('trans_station') ? trans_station($station_data['station_name']) : ''; } $nearby_stations[] = $station_data; } else { $display_type = ($closest_station['type'] === 'ktx') ? (($closest_station['srt_flag'] == 1) ? 'KTX/SRT' : 'KTX') : 'SRT'; $display_stations[] = ['title' => $closest_station['title'], 'distance' => $closest_station['distance'], 'display_type' => $display_type, 'icon_color' => 'text-green-600', 'latitude' => $closest_station['lat'], 'longitude' => $closest_station['lng']]; } } } } } // --- Nearby Stations Logic End --- ?>
Jazz For Valentine
公演期間
2022. 02. 12 - 2022. 02. 13
公演時間:
公演場所
ハンジョナツセント コンギョンジャン
한전아트센터 공연장
Seoul > Seocho-gu > 60 Hyoryeong-ro 72-gil
서울특별시 서초구 효령로72길 60
ジャンル
コンサート
出演者
公演紹介
2022년 발렌타인 데이를 맞아 재즈공연기획사 플러스히치에서 특별한 재즈 공연 Jazz For Valentine을 준비하였다. 이번 공연은 2월 12일과 13일 발렌타인 데이를 기념하기 위해 대중들에게 친숙하면서 새로움을 줄 수 있는 두 개의 공연으로 구성되어 있다. 2월12일(토)은 작년 A Boy Named Charlie Brown과 Charlie Brown Christmas두 개의 공연을 통해 더 피너츠의 음악들을 들려주었던 민경인 트리오가 발렌타인 데이를 맞아 Be My Valentine이란 타이틀로 다시 한번 피너츠의 음악을 준비하였다. Be My Valentine은 발렌타인 데이를 기념해 제작되었던 피너츠 TV에피소드 중의 하나이자 빈스 과랄디의 또 다른 대표곡이기도 하다. 특별히 이번에는 기존 피아노 트리오 구성 뿐만 아니라 최진배가 이끄는 18인조 빅밴드가 참여해 피너츠의 친숙한 음악들 그리고 발렌타인 데이에 어울리는 재즈 스탠다드를 연주할 예정이다. 2월13일(일)에는 보사노바의 클래식이라 불리는 Getz/Gilberto 앨범을 한층 더 업그레이드한 Getz/Gilberto Valentine Edition 공연을 준비하였다. 마리아킴, 허성, 이용석, 옥진우, 김대호, 김건영의 기존 편성에 스트링 쿼텟과 플룻이 더해져 보다 더 우아하고 화려하며 풍성한 매력적이고 사랑스러운 보사노바 음악을 들려줄 예정이다. 여기에 Getz/Gilberto 앨범에는 수록되지 않았지만 너무도 유명한 안토니오 카를로스 조빔의 대표곡들도 함께 만날 수 있다.
最終更新: 2025年02月11日
登録日: 2024年10月14日