Interactive Guide: Van Don Airport Arrival https://cdn.tailwindcss.com https://cdn.jsdelivr.net/npm/chart.js body { font-family: ‘Inter’, sans-serif; background-color: #f8fafc; /* slate-50 */ color: #1e293b; /* slate-800 */ } .nav-link { transition: all 0.2s ease-in-out; cursor: pointer; } .nav-link.active, .nav-link:hover { color: #16a34a; /* green-600 */ border-bottom-color: #16a34a; } .section { display: none; } .section.active { display: block; } .step-connector:before { content: ”; position: absolute; top: 50%; left: -2px; right: -2px; height: 2px; background-color: #cbd5e1; /* slate-300 */ z-index: -1; } .chart-container { position: relative; width: 100%; max-width: 600px; margin-left: auto; margin-right: auto; height: 300px; max-height: 400px; } @media (min-width: 768px) { .chart-container { height: 350px; } }
V

Van Don Airport Guide

Prepare Arrive Transport Services

Prepare for a Smooth Arrival

This section provides an interactive checklist of everything you need to organize before your flight to Vietnam. Completing these steps will ensure your entry is as seamless as possible.

Your Personalized Arrival Process

The arrival procedure at Van Don Airport depends on your visa status. Select your visa type below to view a customized, step-by-step visual guide for navigating the airport from landing to exit.

Ground Transportation from VDO

Van Don Airport is located about 50-60km from Ha Long City. This section outlines your options for getting to your destination, including an interactive cost comparison to help you choose.

Transport Options

Cost Comparison (USD)

Note: Prices are estimates and can vary.

Airport & Visa Services

Explore premium services designed to make your journey even smoother, from expediting your immigration process to securing your visa with confidence.

Immigration Fast Track Service

Avoid long queues and save significant time with a personalized meet-and-greet service that escorts you through priority lanes.

⏱️

Save Time

Bypass general queues at immigration and visa counters.

🀝

Personal Escort

Be met upon arrival and guided through every step.

βœ…

Stress-Free

Handles VOA paperwork and payments for you.

Expert Visa Application

Simplify your E-Visa or Visa on Arrival application with a trusted service for a hassle-free, guaranteed process.

πŸ“

Simple Forms

Use an intuitive interface, not complex government portals.

⚑

Fast Turnaround

Expedited processing options are available to meet your schedule.

πŸ’―

100% Success Rate

Get your visa or your money back, guaranteed.

© 2025 Van Don Airport Guide. Information provided for guidance purposes only.

Always verify official requirements before traveling.

document.addEventListener(‘DOMContentLoaded’, function() { const checklistData = [ { text: “Passport valid for 6+ months with 2 blank pages.”, checked: false }, { text: “Confirm Visa status: Visa-Free, E-Visa, or Visa on Arrival.”, checked: false }, { text: “Print E-Visa or VOA Approval Letter if applicable.”, checked: false }, { text: “Have accommodation address & contact info accessible.”, checked: false }, { text: “Check customs regulations for currency and restricted items.”, checked: false }, { text: “Prepare cash (USD/VND) for VOA stamping fee if needed.”, checked: false }, { text: “Acquire a local SIM/eSIM for connectivity.”, checked: false } ]; const arrivalFlows = { ‘visa-free’: [ { icon: ‘✈️’, title: ‘Arrival & Disembark’, description: ‘Follow signs to Immigration.’ }, { icon: ‘πŸ›‚’, title: ‘Immigration Checkpoint’, description: ‘Present Passport & E-Visa (if any). Get entry stamp.’ }, { icon: ‘πŸ›„’, title: ‘Baggage Claim’, description: ‘Collect your checked luggage.’ }, { icon: ‘πŸ›ƒ’, title: ‘Customs Check’, description: ‘Proceed through Green or Red lane.’ }, { icon: ‘πŸ‘‹’, title: ‘Exit Airport’, description: ‘Enter the arrivals hall. Welcome to Vietnam!’ } ], ‘voa’: [ { icon: ‘✈️’, title: ‘Arrival & Disembark’, description: ‘Proceed to the Visa on Arrival area first.’ }, { icon: ‘πŸ“’, title: ‘Landing Visa Counter’, description: ‘Submit Approval Letter, Form NA1, photo, and stamping fee.’ }, { icon: ‘πŸ›‚’, title: ‘Immigration Checkpoint’, description: ‘With visa in passport, get entry stamp.’ }, { icon: ‘πŸ›„’, title: ‘Baggage Claim’, description: ‘Collect your checked luggage.’ }, { icon: ‘πŸ›ƒ’, title: ‘Customs Check’, description: ‘Proceed through Green or Red lane.’ }, { icon: ‘πŸ‘‹’, title: ‘Exit Airport’, description: ‘Enter the arrivals hall. Welcome to Vietnam!’ } ] }; const transportData = [ { name: “Airport Shuttle”, desc: “Most budget-friendly option. Routes 14A & 14B may be free with prior booking. ~1-1.5 hours.”, cost: “~$8 USD” }, { name: “Taxi”, desc: “Convenient and readily available. Agree on fare or use meter. ~45-60 mins.”, cost: “~$35-50 USD” }, { name: “Private Car”, desc: “Pre-book for maximum comfort, especially for groups or with lots of luggage. ~45-60 mins.”, cost: “~$40-60 USD” }, { name: “Ride-Hailing (Grab)”, desc: “Use the app for booking. Availability may vary at the airport.”, cost: “Varies” }, ]; function initApp() { setupNavigation(); populateChecklist(); renderArrivalFlow(‘visa-free’); setupVisaButtons(); populateTransportOptions(); renderTransportChart(); } function setupNavigation() { const navLinks = document.querySelectorAll(‘.nav-link’); const sections = document.querySelectorAll(‘.section’); navLinks.forEach(link => { link.addEventListener(‘click’, () => { const targetId = link.getAttribute(‘data-target’); navLinks.forEach(l => l.classList.remove(‘active’)); link.classList.add(‘active’); sections.forEach(section => { if (section.id === targetId) { section.classList.add(‘active’); } else { section.classList.remove(‘active’); } }); window.scrollTo({ top: 0, behavior: ‘smooth’ }); }); }); } function populateChecklist() { const list = document.getElementById(‘checklist’); list.innerHTML = ”; checklistData.forEach((item, index) => { const li = document.createElement(‘li’); li.className = ‘flex items-center p-4 bg-slate-50 rounded-lg cursor-pointer hover:bg-slate-100 transition-all’; li.innerHTML = `
${item.text} `; li.addEventListener(‘click’, () => toggleChecklistItem(li, index)); list.appendChild(li); }); } function toggleChecklistItem(liElement, index) { checklistData[index].checked = !checklistData[index].checked; const icon = liElement.querySelector(‘.check-icon’); const checkmark = icon.querySelector(‘span’); const text = liElement.querySelector(‘.item-text’); if (checklistData[index].checked) { icon.classList.add(‘bg-green-500’, ‘border-green-500’); checkmark.classList.remove(‘hidden’); text.classList.add(‘line-through’, ‘text-slate-400’); } else { icon.classList.remove(‘bg-green-500’, ‘border-green-500’); checkmark.classList.add(‘hidden’); text.classList.remove(‘line-through’, ‘text-slate-400’); } } function setupVisaButtons() { const btnVisaFree = document.getElementById(‘btn-visa-free’); const btnVoa = document.getElementById(‘btn-voa’); btnVisaFree.addEventListener(‘click’, () => { renderArrivalFlow(‘visa-free’); btnVisaFree.className = ‘visa-btn bg-green-600 text-white font-semibold py-3 px-6 rounded-lg shadow-md hover:bg-green-700 transition-all transform hover:scale-105’; btnVoa.className = ‘visa-btn bg-slate-200 text-slate-700 font-semibold py-3 px-6 rounded-lg hover:bg-slate-300 transition-all’; }); btnVoa.addEventListener(‘click’, () => { renderArrivalFlow(‘voa’); btnVoa.className = ‘visa-btn bg-green-600 text-white font-semibold py-3 px-6 rounded-lg shadow-md hover:bg-green-700 transition-all transform hover:scale-105’; btnVisaFree.className = ‘visa-btn bg-slate-200 text-slate-700 font-semibold py-3 px-6 rounded-lg hover:bg-slate-300 transition-all’; }); } function renderArrivalFlow(type) { const flowContainer = document.getElementById(‘arrival-flow’); const steps = arrivalFlows[type]; let flowHTML = ‘
‘; steps.forEach((step, index) => { flowHTML += `
${step.icon}

${step.title}

${step.description}

${index < steps.length – 1 ? '
‘ : ”}
`; }); flowHTML += ‘
‘; flowContainer.innerHTML = flowHTML; } function populateTransportOptions() { const container = document.getElementById(‘transport-options’); container.innerHTML = ”; transportData.forEach(option => { const div = document.createElement(‘div’); div.className = ‘p-4 border-l-4 border-green-500 bg-green-50 rounded-r-lg’; div.innerHTML = `

${option.name} ${option.cost}

${option.desc}

`; container.appendChild(div); }); } function renderTransportChart() { const ctx = document.getElementById(‘transportChart’).getContext(‘2d’); new Chart(ctx, { type: ‘bar’, data: { labels: [‘Shuttle’, ‘Taxi’, ‘Private Car’], datasets: [{ label: ‘Estimated Cost (USD)’, data: [8, 42, 50], backgroundColor: [ ‘rgba(52, 211, 153, 0.6)’, // emerald-400 ‘rgba(250, 204, 21, 0.6)’, // yellow-400 ‘rgba(59, 130, 246, 0.6)’ // blue-500 ], borderColor: [ ‘rgba(5, 150, 105, 1)’, // emerald-600 ‘rgba(217, 119, 6, 1)’, // amber-600 ‘rgba(37, 99, 235, 1)’ // blue-600 ], borderWidth: 1 }] }, options: { responsive: true, maintainAspectRatio: false, scales: { y: { beginAtZero: true, title: { display: true, text: ‘Cost in USD ($)’ } } }, plugins: { legend: { display: false }, tooltip: { callbacks: { label: function(context) { let label = context.dataset.label || ”; if (label) { label += ‘: ‘; } if (context.parsed.y !== null) { label += new Intl.NumberFormat(‘en-US’, { style: ‘currency’, currency: ‘USD’ }).format(context.parsed.y); } return label; } } } } } }); } initApp(); });
evisa.vn Avatar

Published by