141 lines
6.8 KiB
HTML
141 lines
6.8 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>Budapest Travel Guide - Interactive Map & Route Planner</title>
|
||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
||
<link rel="stylesheet" href="style.css">
|
||
</head>
|
||
<body>
|
||
<div class="app-container">
|
||
<!-- Header -->
|
||
<header class="app-header">
|
||
<div class="header-content">
|
||
<h1><span class="icon-budapest">🏛️</span> Budapest Travel Guide</h1>
|
||
<p>Explore the Pearl of the Danube with our interactive map & route planner</p>
|
||
</div>
|
||
</header>
|
||
|
||
<!-- Main Content -->
|
||
<main class="main-content">
|
||
<!-- Sidebar -->
|
||
<aside class="sidebar">
|
||
<!-- Search -->
|
||
<div class="search-section">
|
||
<div class="form-group">
|
||
<input type="text" id="searchInput" class="form-control" placeholder="Search sights...">
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Category Filters -->
|
||
<div class="filters-section">
|
||
<h3>Filter by Category</h3>
|
||
<div class="filter-buttons">
|
||
<button class="btn btn--sm filter-btn active" data-category="all">All Sights</button>
|
||
<button class="btn btn--sm filter-btn" data-category="Historic Landmark">🏛️ Historic</button>
|
||
<button class="btn btn--sm filter-btn" data-category="Religious Site">⛪ Religious</button>
|
||
<button class="btn btn--sm filter-btn" data-category="Thermal Bath">🛁 Baths</button>
|
||
<button class="btn btn--sm filter-btn" data-category="Viewpoint">🏔️ Views</button>
|
||
<button class="btn btn--sm filter-btn" data-category="Cultural Venue">🎭 Cultural</button>
|
||
<button class="btn btn--sm filter-btn" data-category="Market">🏪 Markets</button>
|
||
<button class="btn btn--sm filter-btn" data-category="Memorial">🕊️ Memorials</button>
|
||
<button class="btn btn--sm filter-btn" data-category="other">🔸 Other</button>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Route Planning -->
|
||
<div class="route-section">
|
||
<h3>My Route Planner</h3>
|
||
<div class="route-controls">
|
||
<button id="placeHotelBtn" class="btn btn--secondary btn--sm">📍 Place My Hotel</button>
|
||
<button id="optimizeRouteBtn" class="btn btn--primary btn--sm">⚡ Optimize Route</button>
|
||
<button id="clearRouteBtn" class="btn btn--outline btn--sm">🗑️ Clear Route</button>
|
||
</div>
|
||
|
||
<div id="hotelInfo" class="hotel-info hidden">
|
||
<div class="hotel-marker">🏨 Hotel Location Set</div>
|
||
<button id="removeHotelBtn" class="btn btn--sm btn--outline">Remove Hotel</button>
|
||
</div>
|
||
|
||
<div id="routeStats" class="route-stats hidden">
|
||
<div class="stats-row">
|
||
<span class="stat-label">Distance:</span>
|
||
<span id="totalDistance">0 km (0 mi)</span>
|
||
</div>
|
||
<div class="stats-row">
|
||
<span class="stat-label">Walking Time:</span>
|
||
<span id="totalTime">0 minutes</span>
|
||
</div>
|
||
<div class="stats-row">
|
||
<span class="stat-label">Selected:</span>
|
||
<span id="selectedCount">0 sights</span>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="selectedSights" class="selected-sights"></div>
|
||
|
||
<button id="downloadRouteBtn" class="btn btn--primary btn--sm btn--full-width hidden">📄 Download Route</button>
|
||
</div>
|
||
|
||
<!-- Sights List -->
|
||
<div class="sights-section">
|
||
<h3>Budapest Attractions</h3>
|
||
<div id="sightsList" class="sights-list"></div>
|
||
</div>
|
||
|
||
<!-- Getting Around Info -->
|
||
<div class="info-section">
|
||
<h3>Getting Around</h3>
|
||
<div class="info-content">
|
||
<p><strong>Walking:</strong> Most attractions in city center are within 30-45 minutes walking distance.</p>
|
||
<p><strong>Hills:</strong> Buda side has hills - budget extra time for uphill walks.</p>
|
||
<p><strong>Public Transport:</strong> Efficient metro, tram, and bus system available.</p>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
|
||
<!-- Map Container -->
|
||
<div class="map-container">
|
||
<div id="map"></div>
|
||
<div id="mapInstructions" class="map-instructions">
|
||
<div class="instruction-content">
|
||
<h4>🗺️ How to Use This Map</h4>
|
||
<ul>
|
||
<li>Click markers to see sight details</li>
|
||
<li>Check sights in sidebar to plan your route</li>
|
||
<li>Click "Place My Hotel" then click on map</li>
|
||
<li>Use filters to find specific types of attractions</li>
|
||
</ul>
|
||
<button id="closeInstructions" class="btn btn--sm btn--primary">Got it!</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</main>
|
||
|
||
<!-- Sight Detail Modal -->
|
||
<div id="sightModal" class="modal hidden">
|
||
<div class="modal-content">
|
||
<div class="modal-header">
|
||
<h2 id="modalTitle"></h2>
|
||
<button id="closeModal" class="btn-close">×</button>
|
||
</div>
|
||
<div class="modal-body">
|
||
<div id="modalContent"></div>
|
||
</div>
|
||
<div class="modal-footer">
|
||
<label class="checkbox-wrapper">
|
||
<input type="checkbox" id="modalAddToRoute">
|
||
<span>Add to my route</span>
|
||
</label>
|
||
<button id="zoomToSight" class="btn btn--primary">Show on Map</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Scripts -->
|
||
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
|
||
<script src="app.js"></script>
|
||
</body>
|
||
</html> |