Home » Asia » Thailand » Phi Phi Islands » Viking Cave
Viking Cave

Viking Cave

Viking Cave is a popular attraction located on the northeastern side of Phi Phi Leh, one of the Phi Phi Islands in Thailand. The cave gets its name from the ancient drawings on its walls, which resemble Viking ships.

Phi Phi Islands
Share to Friends
Cave

About This Attraction

Viking Cave is a popular attraction located on the northeastern side of Phi Phi Leh, one of the Phi Phi Islands in Thailand. The cave gets its name from the ancient drawings on its walls, which resemble Viking ships. Although visitors are not allowed to enter the cave itself, you can view it from the water during a boat tour. The main activity related to Viking Cave is birds nest harvesting, as the nests of swiftlets found here are considered a delicacy.

For those interested in Viking Cave travel information, its important to know that the best way to see it is by hiring a local boat or joining a guided tour. These tours often include other nearby attractions, such as Maya Bay and Pileh Lagoon. While visiting, youll have the opportunity to learn about the local practices and history associated with the cave. Remember to bring your camera for stunning photos from your boat.

Location Details

Address Ko Phi Phi Le, Ao Nang, Mueang Krabi District, Krabi, Thailand

Visitor Information

Pricing & Ratings

Ticket Prices

Adult Free
Child Free
Student Free
Senior Free

Ratings

Overall Rating
7.5/10
Crowd Level
7.0/10

Opening Hours & Booking

Open

Days Daily
Hours Not open to public
Seasonality Year-round

Booking

Booking Required? Yes
Book Your Visit

*Prices may vary. Check official website for the most up-to-date information.

Nearby Attractions

Showing 10 of 100 attractions
Miles Kilometers

Maya Bay

Beach/Natural Attraction

Maya Bay, located in the Phi Phi Islands of Thailand, is a popular tourist spot…

8.5/10
Learn More

Pileh Lagoon

Natural Lagoon

Scenic emerald lagoon surrounded by limestone cliffs.

9.2/10

Loh Samah Bay

Scenic Bay

Scenic bay known for snorkeling and clear waters.

8.5/10

Ao Toh Ko

Beach

Secluded beach with clear waters and scenic views.

8.5/10

Wang Long Cave

Natural Cave

A picturesque sea cave with clear waters, popular for snorkeling and kayaking.

8.5/10

Loh Moo Dee Beach

Beach

Secluded beach with clear waters and white sand, ideal for relaxation.

8.5/10

Long Beach Phi Phi

Beach

A stunning beach with clear waters, ideal for swimming and snorkeling.

8.5/10

Wang Long Bay

Natural Bay

A secluded bay known for snorkeling and stunning limestone cliffs.

8.5/10

Viking Beach

Beach

A secluded beach known for its clear waters and tranquil atmosphere.

8.5/10

Monkey Beach

Beach

A small, picturesque beach known for its wild monkeys.

8.5/10
"; } // Initialize modal controls const initModalControls = function() { console.log('Initializing modal controls'); const modal = document.getElementById('attraction-modal'); const closeBtn = document.querySelector('.attraction-modal-close'); if (closeBtn) { closeBtn.addEventListener('click', function() { modal.style.display = 'none'; document.body.style.overflow = ''; }); } window.addEventListener('click', function(event) { if (event.target === modal) { modal.style.display = 'none'; document.body.style.overflow = ''; } }); // Make attraction cards clickable const attractionCards = document.querySelectorAll('.attraction-card'); console.log('Found ' + attractionCards.length + ' attraction cards'); attractionCards.forEach(card => { card.addEventListener('click', function(e) { openModalWithCardData(this); }); }); }; // Function to open modal with card data const openModalWithCardData = function(card) { // Get data from hidden div const data = card.querySelector('.attraction-full-data'); if (!data) { console.error('No attraction data found in card'); return; } const modal = document.getElementById('attraction-modal'); if (!modal) { console.error('Modal element still not found after creation attempt'); return; } // Helper function to safely get element text function getElementText(selector) { const element = data.querySelector(selector); return element ? element.textContent : ''; } try { // Basic Info document.getElementById('attraction-modal-title').textContent = getElementText('.attraction-name'); document.getElementById('attraction-modal-type').textContent = getElementText('.attraction-type-full'); document.getElementById('attraction-modal-description').textContent = getElementText('.attraction-description-full'); // Reset all containers to hidden ['attraction-modal-hours-container', 'attraction-modal-price-container', 'attraction-modal-address-container', 'attraction-modal-image-container'].forEach(id => { const container = document.getElementById(id); if (container) container.style.display = 'none'; }); // Rating const ratingText = getElementText('.attraction-rating-full'); if (ratingText) { const ratingValue = parseFloat(ratingText); if (!isNaN(ratingValue)) { const ratingValueEl = document.getElementById('attraction-modal-rating-value'); const ratingFillEl = document.getElementById('attraction-modal-rating-fill'); if (ratingValueEl) ratingValueEl.textContent = ratingValue.toFixed(1) + '/10'; if (ratingFillEl) ratingFillEl.style.width = (ratingValue * 10) + '%'; } } // Show the modal modal.style.display = 'block'; document.body.style.overflow = 'hidden'; // Prevent background scrolling console.log('Modal opened successfully'); } catch (error) { console.error('Error opening modal:', error); } }; // Try to create the modal const created = createModal(); console.log('Modal created:', created); // If not created (already exists), initialize the controls if (!created) { initModalControls(); } // Also initialize distance toggle const distanceToggle = document.getElementById('distance-unit-toggle'); if (distanceToggle) { distanceToggle.addEventListener('change', function() { const showKm = this.checked; // Update toggle labels const labels = document.querySelectorAll('.toggle-label'); if (labels.length >= 2) { labels[0].style.opacity = showKm ? '0.5' : '1'; labels[1].style.opacity = showKm ? '1' : '0.5'; } // Update all distance displays document.querySelectorAll('.nearby-attraction-card').forEach(card => { const kmEl = card.querySelector('.distance-km'); const miEl = card.querySelector('.distance-mi'); if (kmEl && miEl) { kmEl.style.display = showKm ? 'inline' : 'none'; miEl.style.display = showKm ? 'none' : 'inline'; } }); }); } });
Scroll to Top