// 初始化地图 const map = L.map('map').setView([31.2304, 121.4737], 13); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© OpenStreetMap contributors' }).addTo(map); let markers = []; let routeLine = null; let userMarker = null; // 获取用户位置(模拟为上海中心) const userLat = 31.2304, userLng = 121.4737; userMarker = L.marker([userLat, userLng], { icon: L.divIcon({ className: 'user-marker', html: '📍', iconSize: [24, 24] }) }).addTo(map).bindPopup('您的位置'); // 搜索按钮 document.getElementById('searchBtn').addEventListener('click', async () => { const destination = document.getElementById('destination').value; const budget = document.getElementById('budget').value; const preferences = Array.from(document.querySelectorAll('.checkboxes input:checked')).map(cb => cb.value); const res = await fetch('/api/recommend', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ destination, budget, preferences, lat: userLat, lng: userLng }) }); const data = await res.json(); renderHotels(data.hotels); renderMarkers(data.hotels); }); function renderHotels(hotels) { const list = document.getElementById('hotelList'); list.innerHTML = ''; hotels.forEach((h, i) => { const card = document.createElement('div'); card.className = 'hotel-card'; card.innerHTML = `