InfoseekChina — Guiyang Travel Guide
✦ Guizhou Province Travel Guide

Guiyang 贵阳 — Forest City of the Southwest

China's coolest summer city, gateway to spectacular karst landscapes, ancient minority cultures, and fiery Guizhou cuisine.

🌿 Average 26°C Summer 🏔️ Karst Mountains 🎭 Miao & Buyi Culture 🌶 Spicy Food Capital 🚄 HSR Connected 📍 26.6°N 106.7°E
6M+Population
1,071mAltitude
26°CAvg Summer Temp
18Ethnic Groups
3.5hrsHSR to Chengdu
2,300Years of History

Why Visit Guiyang?

Guiyang (贵阳), capital of Guizhou Province, sits at over 1,000 metres in a highland basin surrounded by dramatic karst mountains. Known as China's "Air Conditioning City," it enjoys naturally cool summers while the rest of China swelters.

Beyond the climate, Guiyang is the gateway to some of China's most spectacular nature — from the thunderous Huangguoshu Waterfall to the ancient stone streets of Qingyan Ancient Town — and to the vivid embroidery, silver jewellery and festivals of the Miao (苗族) and Buyi (布依族) peoples.

The city has reinvented itself as China's big data capital, hosting the Guizhou Big Data Expo and attracting Apple, Huawei, and Tencent server farms to its cooler climate. It's a fascinating collision of ultra-modern digital infrastructure and deep-rooted minority tradition.

Top Highlights

  • Huangguoshu — Asia's most powerful waterfall system
  • Qingyan Ancient Town — 600-year-old Ming-dynasty walled village
  • Qianling Park — urban hill park with wild macaques & Buddhist temple
  • Jiaxiu Tower — iconic riverside pavilion at the heart of the old city
  • Guizhou Provincial Museum — world-class exhibition of minority cultures
  • Erqi Road Night Market — the best street food street in Guiyang
✈️

Getting There

Guiyang Longdongbao International Airport (KWE). Direct flights from Beijing (2.5h), Shanghai (2.5h), Chengdu (1h), Hong Kong (1.5h).

💰

Budget

Very affordable. Budget ¥200–350/day; mid-range ¥500–1,000; luxury ¥1,500+. Street meals from ¥10–25.

🗣️

Language

Mandarin Chinese. Guizhou dialect widely spoken locally. Very limited English outside major hotels. Translation apps essential.

💳

Payments

WeChat Pay & Alipay dominant. Most street vendors cash only. International cards accepted at 5-star hotels. Have RMB cash ready.

📡

Internet

VPN needed for Google, WhatsApp, Instagram. Purchase a SIM card at airport. Hotel WiFi generally reliable.

🏥

Health

Guizhou is high altitude — allow 1 day to acclimatize. Guiyang People's Hospital has international clinic. No vaccinations required.

📍 Guiyang & Key Destinations Map

Longitude 106.7135°E · Latitude 26.5783°N · Altitude ~1,071m · Guizhou Province, Southwest China

Guiyang Guide

Loading…

When to Go — Climate Guide 气候指南

Guiyang has a mild subtropical highland climate. Best months: April–October. Summer is ideal — cool and pleasant compared to the rest of China.

January
🌧️
3°C – 10°C
Cool, drizzly. Minimal tourists.
February
🌥️
5°C – 13°C
Chinese New Year. Festive.
March
🌦️
9°C – 18°C
Spring blooms. Mild rains.
April
14°C – 22°C
Warm, scenic. Great for hiking.
✦ Best
May
🌤️
18°C – 25°C
Lush green. Minority festivals.
✦ Best
June
⛈️
21°C – 27°C
Rainy season starts. Waterfalls peak.
July
☀️
23°C – 29°C
Peak season. Cool vs rest of China.
✦ Best
August
23°C – 29°C
Big Data Expo month. Busy.
✦ Best
September
🌤️
20°C – 26°C
Golden harvest. Less crowds.
✦ Best
October
🍂
15°C – 22°C
Autumn colours. National holidays.
November
🌧️
9°C – 16°C
Getting cooler. Quieter.
December
❄️
4°C – 11°C
Cold. Occasional frost.

Getting Around 交通出行

Guiyang has excellent public transport infrastructure.

✈️

By Air

Guiyang Longdongbao International Airport (KWE) — 11km east of city centre. Taxi ~¥40–60, 30 mins. Airport bus lines 1–5 connect to major districts and train stations.

🚄

By High-Speed Rail

Guiyang North Station (贵阳北站) is the main HSR hub. Connections to Chengdu (3.5h), Kunming (2h), Chongqing (1.5h), Changsha (2.5h), Guangzhou (4h). Guiyang Station handles slower regional trains.

🚇

Metro (Subway)

4 metro lines cover the city centre and suburbs. Line 1 (N–S) and Line 2 (E–W) are the main arterials. Fare ¥2–6 per journey. MetroCard available at stations. Very clean and efficient.

🚌

City Buses

Extensive network of 200+ routes. Fare ¥1–2. Air-conditioned. Route information in Chinese only — use Baidu Maps app or Amap for navigation. BRT (Bus Rapid Transit) serves main corridors.

🚕

Taxis & Didi

Abundant taxis, metered. Starting fare ¥8, typical city journey ¥15–40. Didi (Chinese Uber) works well — download app before visiting. International driving licence accepted for car rentals.

🚌

To Attractions

Huangguoshu: tourist coaches from Guiyang's West Bus Station (~2h, ¥55). Qingyan: Bus 211 from Huaxi or taxi (~40min, ¥50–80). Maotai Town: 2.5h by HSR via Renhuai direction.

General Information & Tips 实用信息

🛂 Visas

  • Most nationalities require a Chinese visa (apply at embassy)
  • 144-hour transit visa-free for 53 countries via Guizhou
  • Guizhou is included in the Yangtze River Delta visa-free zone expansion
  • E-visa available for many nationalities online

💰 Money

  • Chinese Yuan (RMB, ¥) — bring some cash
  • ATMs at Bank of China, ICBC accept foreign cards
  • WeChat Pay / Alipay: now support foreign credit cards for tourists
  • Guiyang is very affordable — meals from ¥10-30

📱 Connectivity

  • Buy SIM at Airport (China Unicom/Mobile) — passport required
  • Download Amap (AutoNavi), Didi, WeChat, Alipay before arrival
  • VPN required for Google, Instagram, WhatsApp, Twitter
  • 4G/5G coverage excellent throughout city and most attractions

🌶 Food Notes

  • Guizhou cuisine is notoriously spicy — "不辣不欢" (love the chili)
  • Must-try: Changwang noodles (肠旺面), sour soup hotpot, rose pickles
  • Maotai baijiu (茅台酒) produced 2.5h away — available everywhere
  • Vegetarians can eat well; many Buddhist restaurants in Qianling area

🌿 Health & Safety

  • Very safe city — low crime rate compared to Chinese averages
  • Tap water not safe to drink — bottled water widely available (¥2)
  • High altitude (1,071m) — possible mild altitude adjustment needed
  • Travel insurance strongly recommended; carry prescription names in Chinese

🎭 Culture Tips

  • Respect minority customs at festivals — ask before photographing
  • Remove shoes when entering some temples and minority homes
  • Tipping is not customary in China — may cause offence
  • Bargaining expected at night markets and souvenirs — not in shops

Travel Resources & Blogs 旅游资源

Useful websites, tourism boards and travel blogs for planning your Guiyang visit.

🏛️
Guizhou Government
Official provincial tourism portal
🌐
TripAdvisor Guiyang
Reviews, rankings & travel forums
📖
Lonely Planet
Comprehensive travel guide to Guiyang
🗺️
Travel China Guide
Practical info, tours & maps
📚
Wikipedia — Guiyang
History, geography, demographics
🧭
China Discovery
Itineraries, tours from Guiyang
🎫
Ctrip / Trip.com
Hotels, flights, attraction tickets
✍️
Mafengwo 马蜂窝
Chinese travel blog & community
{ name:"Jiaxiu Tower", nameCn:"甲秀楼", logo:"甲", logoColor:"#C0272D", badge:"Iconic Landmark", badgeColor:"#C0272D", meta:"📍 Nanming River · Free Entry · Open 24h", rating:4.2, ratingCount:121, overview:"The iconic three-storey pavilion rising from a stone bridge over the Nanming River has been Guiyang's symbol since 1598. The tower was built to inspire scholarly achievement — its name means 'cultivating excellence'. At night, the golden reflections on the water are breathtaking.", chips:["Historic", "Riverside Walk", "Night View", "Photography"], links:[ {label:"Wikipedia",url:"https://en.wikipedia.org/wiki/Jiaxiu_Tower"}, {label:"Google Maps",url:"https://www.google.com/maps?q=Jiaxiu+Tower+Guiyang"} ] }, { name:"Qianling Park", nameCn:"黔灵公园", logo:"黔", logoColor:"#2D8B27", badge:"Nature Park", badgeColor:"#2D8B27", meta:"📍 Yunyan District · ¥5 Entry · Daily 6am–8pm", rating:4.3, ratingCount:22, overview:"A lush urban hill park stretching 5km around Qianling Lake and up to Hongfu Temple (弘福寺) at the 1,300m summit. Home to hundreds of wild macaques who will boldly snatch your food. Locals practice tai chi at dawn by the lake. A tranquil Buddhist atmosphere prevails.", chips:["Wildlife", "Hiking", "Buddhism", "Morning Exercise", "Cable Car"], links:[ {label:"Visitor Info",url:"https://www.travelchinaguide.com/cityguides/guizhou/guiyang/qianling.htm"}, {label:"Google Maps",url:"https://www.google.com/maps?q=Qianling+Park+Guiyang"} ] }, { name:"Qingyan Ancient Town", nameCn:"青岩古镇", logo:"青", logoColor:"#8B6A1E", badge:"Heritage Site", badgeColor:"#8B6A1E", meta:"📍 Huaxi District · ~¥40 Entry · 40 min from city", rating:4.3, ratingCount:126, overview:"Founded in 1378 during the Ming dynasty, Qingyan is one of Guizhou's four most famous ancient towns. Its stone-paved streets, battlements, Confucian temples, and Catholic church reflect a remarkable blend of Han, Miao and Christian heritage. The marinated pork trotters (猪脚) are famous throughout China.", chips:["Ming Dynasty", "Stone Architecture", "Food Street", "Temples", "Day Trip"], links:[ {label:"Travel Guide",url:"https://www.chinadiscovery.com/guizhou/guiyang/qingyan-ancient-town.html"}, {label:"Wikipedia",url:"https://en.wikipedia.org/wiki/Qingyan"}, {label:"Google Maps",url:"https://www.google.com/maps?q=Qingyan+Ancient+Town+Guiyang"} ] }, { name:"Huangguoshu Waterfall", nameCn:"黄果树瀑布", logo:"瀑", logoColor:"#1B6FAB", badge:"Natural Wonder", badgeColor:"#1B6FAB", meta:"📍 Anshun (2h from Guiyang) · ¥270–310 Entry", rating:4.6, ratingCount:298, overview:"Asia's most powerful waterfall — 77.8m wide and 67m tall — thundering into a rocky gorge. Walk behind the cascade through the Water Curtain Cave (水帘洞), immortalised in the 1986 Journey to the West TV series. The scenic area covers multiple waterfalls across a vast karst landscape.", chips:["Day Trip", "Natural Wonder", "Photography", "Hiking", "Must-See"], links:[ {label:"Official Site",url:"https://www.hgs.com.cn"}, {label:"Wikipedia",url:"https://en.wikipedia.org/wiki/Huangguoshu_Waterfall"}, {label:"Google Maps",url:"https://www.google.com/maps/place/Huangguoshu+Waterfall"} ] }, { name:"Guian Science City", nameCn:"贵安科技城", logo:"数", logoColor:"#7C3AED", badge:"Modern Tech", badgeColor:"#7C3AED", meta:"📍 Guian New Area · Free to explore · 45 min from centre", rating:null, ratingCount:null, overview:"The world's largest cluster of server rooms for Apple, Huawei, Tencent, and the Chinese government sits in these mountains — exploiting cheap hydropower and cool temperatures. The Big Data Expo Centre hosts China's premier digital economy conference annually each May.", chips:["Big Data", "Modern China", "Tech Tourism", "Apple Servers", "Unique"], links:[ {label:"Big Data Expo",url:"https://www.bigdataexpo.cn"}, {label:"Guian New Area",url:"https://en.gzguian.gov.cn"} ] }, { name:"Maotai Town", nameCn:"茅台镇", logo:"茅", logoColor:"#CC3300", badge:"Day Trip", badgeColor:"#CC3300", meta:"📍 Renhuai, Zunyi (2.5h by HSR) · Free town entry", rating:null, ratingCount:null, overview:"The birthplace of China's most prestigious baijiu — Maotai (茅台酒). The aroma of fermenting sorghum fills the entire river valley. Tour distilleries, visit the Kweichow Moutai Museum, browse luxury liquor shops, and sample the world's most expensive spirit direct from the source.", chips:["Baijiu", "Day Trip", "Distillery", "Chinese Culture", "UNESCO Bid"], links:[ {label:"Moutai Group",url:"https://www.kweichowmoutai.com"}, {label:"Wikipedia",url:"https://en.wikipedia.org/wiki/Moutai"}, {label:"Travel Guide",url:"https://www.travelchinaguide.com/cityguides/guizhou/guiyang/maotai.htm"} ] } ]; const hotelsData = [ { name:"Kempinski Hotel Guiyang", nameCn:"贵阳凯宾斯基酒店", logo:"K", logoColor:"#0A3D72", badge:"5-Star · International", badgeColor:"#0A3D72", meta:"💰 ¥800–1,800/night · 68 Huguo Lu, Nanming District", rating:4.5, ratingCount:34, overview:"Guiyang's finest international hotel — spacious renovated rooms with city views, outstanding breakfast buffet with Chinese and European options, and a prime central location near Nanming River. Lobby lounge is excellent for business meetings.", chips:["5-Star", "Central", "Business", "International"], links:[ {label:"Book Now",url:"https://www.kempinski.com/en/hotel-guiyang"}, {label:"Google Maps",url:"https://www.google.com/maps/place/Kempinski+Hotel+Guiyang"} ] }, { name:"Hyatt Regency Guiyang", nameCn:"贵阳凯悦酒店", logo:"H", logoColor:"#1B4F94", badge:"5-Star · Luxury", badgeColor:"#1B4F94", meta:"💰 ¥700–1,600/night · Zhongtian Road, Jinyang District", rating:4.7, ratingCount:24, overview:"Outstanding food and service in the newer Jinyang Financial District. Staff praise it as deserving Park Hyatt status. Excellent local cuisine at the in-house restaurant and superb breakfast buffet. Further from old city centre but ideal for business visitors.", chips:["5-Star", "Business", "Award-Winning Food", "New District"], links:[ {label:"Book Now",url:"https://www.hyatt.com/hyatt-regency/en/kyagh-hyatt-regency-guiyang"}, {label:"Google Maps",url:"https://www.google.com/maps/place/Hyatt+Regency+Guiyang"} ] }, { name:"Sofitel Guiyang Hunter", nameCn:"贵阳索菲特大饭店", logo:"S", logoColor:"#8B0000", badge:"5-Star · Skyscraper", badgeColor:"#8B0000", meta:"💰 ¥500–1,200/night · 33 Dusi Elevated Road", rating:4.1, ratingCount:57, overview:"Dramatic hotel with lobby on the 55th floor and mountain-valley panoramas from every room. Massive rooms with great city views, next to major shopping malls and street food markets. The quirky vertical layout divides opinion but the views are unmissable.", chips:["5-Star", "Views", "Shopping Nearby", "French Brand", "Unusual"], links:[ {label:"Book Now",url:"https://www.sofitel.com"}, {label:"Google Maps",url:"https://www.google.com/maps/place/Sofitel+Guiyang+Hunter"} ] }, { name:"Anantara Guiyang Resort", nameCn:"贵阳安纳塔拉度假酒店", logo:"A", logoColor:"#5B8C5A", badge:"5-Star · Resort", badgeColor:"#5B8C5A", meta:"💰 ¥1,200–2,800/night · Longli County, Qiannan Prefecture", rating:4.4, ratingCount:14, overview:"A luxurious countryside escape 45 minutes from Guiyang in the rolling Longli hills. Set on a beautiful restored ancient village site with spa, pools, and outstanding dinner buffet. Ideal for those seeking a rural Guizhou retreat with international service standards.", chips:["5-Star", "Spa", "Rural", "Countryside", "Luxury Retreat"], links:[ {label:"Book Now",url:"https://www.anantara.com/en/guiyang"}, {label:"Google Maps",url:"https://www.google.com/maps/place/Anantara+Guiyang+Resort"} ] } ]; const foodData = [ { name:"Erqi Road Snack Street", nameCn:"二七路小吃街", logo:"食", logoColor:"#D4A017", badge:"Street Food", badgeColor:"#D4A017", meta:"📍 Nanming District, near Guiyang Station · Daily 11am–11pm", rating:5.0, ratingCount:4, overview:"The definitive Guiyang street food experience — stretching north to south near the train station. Dozens of stalls serving Changwang noodles, sour soup, grilled skewers, douhua (tofu pudding), and Guizhou specialties. Incredibly affordable (most dishes ¥5–20). Packed with locals at lunch. Cash and WeChat Pay.", chips:["Street Food", "Authentic", "Cheap", "Local Favourite", "Near Station"], links:[ {label:"Google Maps",url:"https://www.google.com/maps/place/Erqi+Road+Guiyang"}, {label:"TripAdvisor",url:"https://www.tripadvisor.com/Attractions-g806474-Activities-c26-Guiyang_Guizhou.html"} ] }, { name:"Qingyun Road Night Market", nameCn:"青云路夜市", logo:"夜", logoColor:"#7B2C9E", badge:"Night Market", badgeColor:"#7B2C9E", meta:"📍 Nanming District · Daily 5pm–12am", rating:4.4, ratingCount:28, overview:"Guiyang's most popular night market for tourists — Blocks A through F of stalls selling Miao handicrafts, creative street-style products, local snacks, and drinks. An atmospheric 2–3 hour wander with great photo opportunities. More curated than Erqi Road but slightly pricier.", chips:["Night Market", "Shopping", "Snacks", "Crafts", "Tourist-Friendly"], links:[ {label:"Google Maps",url:"https://www.google.com/maps/place/Qingyun+Road+Night+Market+Guiyang"}, {label:"Travel Guide",url:"https://www.chinadiscovery.com/guizhou/guiyang"} ] }, { name:"Changwang Noodles 肠旺面", nameCn:"贵阳肠旺面", logo:"面", logoColor:"#CC3300", badge:"Local Dish", badgeColor:"#CC3300", meta:"🍜 Guiyang's signature breakfast noodle · ¥12–20/bowl", rating:null, ratingCount:null, overview:"Guiyang's most iconic breakfast dish — springy hand-pulled noodles in a rich pork blood and intestine broth, crowned with crispy fried tofu, bean sprouts, and house chili oil. Fujilao Noodle Restaurant near Yan Wu Jie is a highly rated specialist. Eaten standing at street stalls before 9am.", chips:["Must Try", "Breakfast", "Street Food", "Spicy", "Local"], links:[ {label:"What to Eat Guide",url:"https://www.travelchinaguide.com/cityguides/guizhou/guiyang/food.htm"}, {label:"Fujilao Maps",url:"https://www.google.com/maps/place/Guiyang+Fujilao+Noodle"} ] }, { name:"Sour Soup Hotpot 酸汤火锅", nameCn:"酸汤鱼火锅", logo:"锅", logoColor:"#E07B3F", badge:"Guizhou Cuisine", badgeColor:"#E07B3F", meta:"🍲 Mid-range restaurants · ¥80–180/person", rating:null, ratingCount:null, overview:"Guizhou's most distinctive dish — fish or beef cooked in a tangy, fiery red or white sour soup broth made from fermented tomatoes and chilies. The sour tang is addictive. Try Kaili sour soup fish (凯里酸汤鱼) and add river fish, tofu, and mountain vegetables. Completely different from Sichuan hotpot.", chips:["Must Try", "Hotpot", "Sour", "Spicy", "Dinner"], links:[ {label:"Guizhou Food Guide",url:"https://www.lonelyplanet.com/china/guizhou"}, {label:"Restaurant Guide",url:"https://www.tripadvisor.com/Restaurants-g806474-Guiyang_Guizhou.html"} ] }, { name:"Huaxi Beef Rice Noodles", nameCn:"花溪牛肉粉", logo:"粉", logoColor:"#1B6FAB", badge:"Regional Dish", badgeColor:"#1B6FAB", meta:"🍜 Breakfast & lunch specialty · ¥15–25/bowl", rating:null, ratingCount:null, overview:"Guiyang's second most iconic breakfast — tender stewed beef layered over rice noodles in a deeply savoury broth with pickled vegetables, chili sauce, and fresh herbs. The Huaxi District claims the original recipe. Found at hundreds of specialist noodle shops citywide from 6am.", chips:["Breakfast", "Rice Noodles", "Hearty", "Traditional", "Everywhere"], links:[ {label:"Food Guide",url:"https://www.chinahighlights.com/guiyang/food.htm"}, {label:"Restaurants Map",url:"https://www.google.com/maps/search/Huaxi+beef+noodles+Guiyang"} ] } ]; const museumData = [ { name:"Guizhou Provincial Museum", nameCn:"贵州省博物馆", logo:"博", logoColor:"#8B4513", badge:"State Museum · Free", badgeColor:"#8B4513", meta:"📍 Lincheng Dong Lu, Guanshanhu District · Free Entry · Tue–Sun", rating:4.5, ratingCount:22, overview:"A world-class museum covering Guizhou's history from prehistoric times through the Communist Revolution. Seven galleries span palaeontology, dynastic history, and an exceptional collection of Miao and Buyi ethnic costumes, silver jewellery, and ceremonial objects. Interactive exhibits and English introductions for key sections.", chips:["Free Entry", "Ethnic Culture", "History", "English Labels", "Family Friendly"], links:[ {label:"Official Site",url:"https://www.gzsbwg.com"}, {label:"Google Maps",url:"https://www.google.com/maps/place/Guizhou+Provincial+Museum"}, {label:"Wikipedia",url:"https://en.wikipedia.org/wiki/Guizhou_Provincial_Museum"} ] }, { name:"Guizhou Museum of Ethnology", nameCn:"贵州民族博物馆", logo:"民", logoColor:"#4A7C4E", badge:"Ethnic Museum · Free", badgeColor:"#4A7C4E", meta:"📍 Jian Dao Jie, Nanming District · Free Entry · Tue–Sun", rating:4.4, ratingCount:29, overview:"A dedicated celebration of Guizhou's 18 ethnic minorities — Miao, Buyi, Dong, Yi, Shui, and more. Floors 2–4 and 6 display embroidered costumes, paper-cutting, masks, musical instruments, dance, and festive culture. An interactive display shows how you look in different ethnic dress. Unexpectedly captivating.", chips:["Free Entry", "Miao Culture", "Costumes", "Interactive", "2h Visit"], links:[ {label:"Google Maps",url:"https://www.google.com/maps/place/Guizhou+Museum+of+Ethnology"}, {label:"Wikipedia",url:"https://en.wikipedia.org/wiki/Ethnic_minorities_in_Guizhou"} ] } ]; const shoppingData = [ { name:"Guiyang Wanda Plaza", nameCn:"贵阳万达广场", logo:"万", logoColor:"#0055A5", badge:"Shopping Mall", badgeColor:"#0055A5", meta:"📍 Multiple locations · Daily 10am–10pm", rating:null, ratingCount:null, overview:"Wanda Group's flagship mall in Guiyang — international brands (Zara, H&M, Apple), cinema multiplex, food court with Guizhou and international cuisine, and an indoor entertainment zone. Good air-conditioned respite on rainy days. Multiple locations across the city.", chips:["International Brands", "Food Court", "Cinema", "Air-Conditioned"], links:[ {label:"Wanda Group",url:"https://www.wanda.cn"}, {label:"Google Maps",url:"https://www.google.com/maps/search/Wanda+Plaza+Guiyang"} ] }, { name:"Miao Silver & Embroidery Markets", nameCn:"苗族银饰刺绣市场", logo:"苗", logoColor:"#C0272D", badge:"Ethnic Crafts", badgeColor:"#C0272D", meta:"📍 Qingyan Town & Night Markets · Daily 9am–9pm", rating:null, ratingCount:null, overview:"Guizhou is renowned for the finest Miao silverwork and embroidery in China — intricate headdresses, necklaces, bracelets, and hand-stitched cloth in geometric patterns. The best quality shops are in Qingyan Ancient Town and specialist markets in Huaxi. Bargaining is expected and rewarding.", chips:["Souvenirs", "Authentic", "Miao Culture", "Silver", "Embroidery"], links:[ {label:"Craft Guide",url:"https://www.chinahighlights.com/guiyang/shopping.htm"}, {label:"Qingyan Town",url:"https://en.wikipedia.org/wiki/Qingyan"} ] }, { name:"Maotai Liquor Shops", nameCn:"茅台酒专卖店", logo:"酒", logoColor:"#CC3300", badge:"Specialist", badgeColor:"#CC3300", meta:"📍 Throughout city & Renhuai · Official retail prices", rating:null, ratingCount:null, overview:"Kweichow Moutai (茅台酒) is China's most prestigious spirit — a sorghum-based baijiu made only in Renhuai, 2.5 hours from Guiyang. Official Moutai shops throughout the city sell the genuine article at fixed government prices. Also look for local Guizhou brands: Xijiu, Dong Jiu. Popular and practical gift.", chips:["Baijiu", "Gift", "Authentic", "Fixed Price", "Must Buy"], links:[ {label:"Moutai Official",url:"https://www.kweichowmoutai.com"}, {label:"Buying Guide",url:"https://www.travelchinaguide.com/cityguides/guizhou/guiyang/shopping.htm"} ] } ]; // ═══ RENDER ═══ function renderSection(data, gridId, filter, sectionAttr) { const grid = document.getElementById(gridId); if(!grid) return; grid.innerHTML = data.map((item, i) => `
${item.name}
${item.nameCn}
${item.badge}
${item.meta}${item.rating ? ` · ${'★'.repeat(Math.round(item.rating))}${'☆'.repeat(5-Math.round(item.rating))} ${item.rating}/5` : ''}

${item.overview}

Tags
${item.chips.map(c=>`${c}`).join('')}
`).join(''); } renderSection(sightsData, 'sights-grid', 'sights', 'sights'); renderSection(hotelsData, 'hotels-grid', 'hotels', 'hotels'); renderSection(foodData, 'food-grid', 'food', 'food'); renderSection(museumData, 'museum-grid', 'museum', 'museum'); renderSection(shoppingData, 'shopping-grid', 'shopping', 'shopping'); // ═══ FILTER ═══ const filterMap = { all:['sights','hotels','food','museum','shopping'], sights:['sights'], nature:['sights'], history:['sights','museum'], hotels:['hotels'], food:['food'], shopping:['shopping'], museum:['museum'] }; const sectionMap = { sights:'sights',hotels:'hotels',food:'food',museum:'museum',shopping:'shopping' }; document.querySelector('.filters').addEventListener('click', e => { if(!e.target.classList.contains('filter-btn')) return; document.querySelectorAll('.filter-btn').forEach(b=>b.classList.remove('active')); e.target.classList.add('active'); const f = e.target.dataset.filter; const show = filterMap[f] || ['sights','hotels','food','museum','shopping']; document.querySelectorAll('[data-section]').forEach(sec => { const s = sec.getAttribute('data-section'); const shouldShow = show.some(v => { if(f==='nature') return s==='sights'; if(f==='history') return s==='sights'||s==='museum'; return v===s; }); sec.style.display = shouldShow ? 'block' : 'none'; }); }); // ── SEARCH HELPERS ──────────────────────────────────────────────────────────── function getAllCardData() { const combined = []; sightsData.forEach(c => combined.push({...c, _section:'sights', _label:'Sight / Activity'})); hotelsData.forEach(c => combined.push({...c, _section:'hotels', _label:'Hotel'})); foodData.forEach(c => combined.push({...c, _section:'food', _label:'Food & Drink'})); museumData.forEach(c => combined.push({...c, _section:'museums', _label:'Museum'})); shoppingData.forEach(c => combined.push({...c, _section:'shopping', _label:'Shopping'})); return combined; } function searchMatch(item, q) { return [ item.name || '', item.nameCn || '', item.overview || '', item.meta || '', item.badge || '', item._label || '', item._section || '', (item.chips || []).join(' ') ].some(s => s.toLowerCase().includes(q)); } function buildSearchCardHtml(c, i) { const color = c.badgeColor || c.logoColor || '#C0272D'; const logoStyle = `background:${color}18;color:${color};border:1px solid ${color}30`; const tagStyle = `color:${color};border-color:${color}50`; const badgeStyle = `background:${color}18;color:${color};border-color:${color}30`; const chips = (c.chips || []).map(h => `${h}`).join(''); const linksHtml = (c.links || []).map(l => `${l.label} ↗`).join(''); const sectionBadge = `${c._label}`; return `
${c.name}${sectionBadge}
${c.nameCn}
${c.badge || ''}
${c.meta || ''}

${c.overview || ''}

${chips}
${linksHtml ? `` : ''}
`; } // ── HEADER SEARCH ───────────────────────────────────────────────────────────── document.getElementById('headerSearch').addEventListener('input', function() { const q = this.value.trim().toLowerCase(); const searchPanel = document.getElementById('sec-search'); const mainContent = document.getElementById('cardsContainer'); const weatherSec = document.querySelector('.weather-section'); const transportSec = document.querySelector('.transport-section'); const practicalSec = document.querySelector('.practical'); const resourcesSec = document.querySelector('.resources-section'); if (!q) { // Restore normal view searchPanel.classList.remove('visible'); [mainContent, weatherSec, transportSec, practicalSec, resourcesSec].forEach(el => { if(el) el.style.display = ''; }); return; } // Section keyword aliases — jump to matching section by scrolling const sectionAliases = { 'sights':'sights','sight':'sights','attractions':'sights','activities':'sights','things to do':'sights','waterfall':'sights','pagoda':'sights','qingyan':'sights','park':'sights', 'hotels':'hotels','hotel':'hotels','accommodation':'hotels','stay':'hotels','kempinski':'hotels','hyatt':'hotels','sofitel':'hotels','anantara':'hotels', 'food':'food','eat':'food','eating':'food','drink':'food','drinking':'food','restaurant':'food','noodles':'food','hotpot':'food','night market':'food','street food':'food', 'museum':'museum','museums':'museum','ethnology':'museum','culture':'museum','miao':'museum', 'shopping':'shopping','shop':'shopping','market':'shopping','buy':'shopping','souvenirs':'shopping','baijiu':'shopping','maotai':'shopping','silver':'shopping', 'weather':'weather','climate':'weather','when to go':'weather','seasons':'weather','temperature':'weather', 'transport':'transport','getting around':'transport','metro':'transport','bus':'transport','train':'transport','taxi':'transport','subway':'transport','airport':'transport','hsr':'transport','rail':'transport', 'map':'map','location':'map','coordinates':'map','longitude':'map','latitude':'map' }; const directSection = sectionAliases[q]; if (directSection) { // Hide search panel, show all content, scroll to section searchPanel.classList.remove('visible'); [mainContent, weatherSec, transportSec, practicalSec, resourcesSec].forEach(el => { if(el) el.style.display = ''; }); // Find and scroll to the matching section element const targets = { 'sights': document.querySelector('[data-section="sights"]'), 'hotels': document.querySelector('[data-section="hotels"]'), 'food': document.querySelector('[data-section="food"]'), 'museum': document.querySelector('[data-section="museum"]'), 'shopping': document.querySelector('[data-section="shopping"]'), 'weather': document.querySelector('.weather-section'), 'transport':document.querySelector('.transport-section'), 'map': document.querySelector('#map-frame') }; const el = targets[directSection]; if (el) setTimeout(() => el.scrollIntoView({ behavior: 'smooth', block: 'start' }), 60); return; } // General keyword search across all card data const matches = getAllCardData().filter(p => searchMatch(p, q)); // Show search panel, hide the scrolling content sections [mainContent, weatherSec, transportSec, practicalSec, resourcesSec].forEach(el => { if(el) el.style.display = 'none'; }); searchPanel.classList.add('visible'); // Update result count document.getElementById('search-info').textContent = matches.length === 0 ? 'No results found' : `${matches.length} result${matches.length !== 1 ? 's' : ''} for "${this.value.trim()}"`; // Render results document.getElementById('search-grid').innerHTML = matches.length === 0 ? `
No matches for "${this.value.trim()}" — try "waterfall", "noodles", "hotel", "Miao" or "Kempinski".
` : matches.map((c, i) => buildSearchCardHtml(c, i)).join(''); // Scroll to results setTimeout(() => searchPanel.scrollIntoView({ behavior: 'smooth', block: 'start' }), 60); }); const hamburger = document.getElementById('hamburger'); const mobileNav = document.getElementById('mobileNav'); const mobileOverlay = document.getElementById('mobileOverlay'); const mobileClose = document.getElementById('mobileClose'); function openMobile() { mobileNav.classList.add('open'); mobileOverlay.classList.add('open'); document.body.style.overflow = 'hidden'; } function closeMobile() { mobileNav.classList.remove('open'); mobileOverlay.classList.remove('open'); document.body.style.overflow = ''; } hamburger.addEventListener('click', openMobile); mobileClose.addEventListener('click', closeMobile); mobileOverlay.addEventListener('click', closeMobile);