Home » Asia » Malaysia » Langkawi » Kilim Geoforest Park
Kilim Geoforest Park

Kilim Geoforest Park

Kilim Geoforest Park in Langkawi is known for its unique geological formations and rich biodiversity. The park covers an area of over 100 square kilometers and includes mangrove forests, limestone cliffs, and a variety of wildlife such as monkeys, eagles, and monitor lizards.

Langkawi
Share to Friends
Geoforest Park

About This Attraction

Kilim Geoforest Park in Langkawi is known for its unique geological formations and rich biodiversity. The park covers an area of over 100 square kilometers and includes mangrove forests, limestone cliffs, and a variety of wildlife such as monkeys, eagles, and monitor lizards. Visitors can explore the park by boat tours that often feature stops at bat caves and fish farms. Kilim Geoforest Park opening hours are typically from 8:30 AM to 5:00 PM, providing ample time for exploration.

The park is part of the Langkawi Geopark, which is recognized by UNESCO for its significant geological heritage. Educational tours offer insight into the ecosystem and conservation efforts in the region. Facilities like parking areas and restrooms are available to ensure a comfortable visit. Its advisable to wear comfortable clothing and footwear suitable for outdoor activities.

Location Details

Address Kilim, 07000 Langkawi, Kedah, Malaysia

Visitor Information

Pricing & Ratings

Ticket Prices

Adult 250 MYR
Child 150 MYR
Student 200 MYR
Senior 200 MYR

Ratings

Overall Rating
8.7/10
Crowd Level
7.0/10

Opening Hours & Booking

Open

Days Monday to Sunday
Hours 8:30 AM to 5:00 PM
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 19 attractions
Miles Kilometers

Pantai Cenang

Beach

Pantai Cenang is a popular beach destination located on the island of Langkawi, Malaysia. Known…

8.5/10
Learn More

Langkawi Sky Bridge

Pedestrian Bridge

The Langkawi Sky Bridge is a remarkable curved pedestrian bridge located in Langkawi, Malaysia. It…

8.5/10
Learn More

Sunrise Beach

Beach

Sunrise Beach in Koh Lipe is a popular destination known for its stunning sunrises and…

9.2/10
Learn More

Mountain Resort Viewpoint

Scenic Viewpoint

Scenic viewpoint offering panoramic views of Koh Lipe and surrounding waters.

8.5/10

Koh Lipe Viewpoint

Scenic Viewpoint

Scenic viewpoint offering panoramic views of Koh Lipe and surrounding islands.

8.5/10

Karma Beach

Beach

A serene beach known for its clear waters and vibrant marine life, ideal for snorkeling…

8.5/10

Castaway Beach

Beach

A serene beach with clear waters, ideal for relaxation and snorkeling.

8.5/10

Pitiusas Beach

Beach

Secluded beach with crystal-clear waters and white sand.

8.5/10

Sanom Beach

Beach

A serene and secluded beach with clear waters and soft sand.

8.5/10

Walking Street

Shopping and Dining

A vibrant street with shops, restaurants, and bars.

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