Historical Site
About This Attraction
St. Pauls Hill in Melaka is a historic site that offers visitors a glimpse into the areas colonial past. Located in the heart of Melaka, it is home to the ruins of St. Pauls Church, which was built by the Portuguese in 1521 and later used by the Dutch for Protestant services. The hill provides a panoramic view of the city and is a popular spot for both tourists and locals who enjoy exploring historical landmarks.
Visitors should note that while there are no specific St. Pauls Hill opening hours, access to the site is usually available during daylight hours. The hills pathways are well-maintained, making it accessible for a casual walk or a more focused exploration of its historical features. Nearby attractions include the A Famosa fortress and the Stadthuys, making it easy to incorporate a visit to St. Pauls Hill into a day of sightseeing in Melaka.
Location Details
Address
Jalan Kota, Bandar Hilir, 75000 Melaka, Malaysia
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
Free
Child
Free
Student
Free
Senior
Free
Opening Hours & Booking
Open
Days
Daily
Hours
24 hours
Seasonality
Year-round
Booking
Booking Required?
No
Nearby Attractions
Jonker Street, located in the heart of Melakas Chinatown, is famous for its lively night…
Learn More
The Melaka River Cruise is a popular attraction in the historical city of Melaka, Malaysia.…
Learn More
Besar Island, part of the Perhentian Islands in Malaysia, offers visitors a serene escape with…
Learn More
A Famosa is a historical Portuguese fortress located in Melaka, Malaysia. Built in 1511, it…
Learn More
Kecil Island is part of the Perhentian Islands located in Malaysia, famous for its beautiful…
Learn More
Turtle Sanctuary Beach in the Perhentian Islands is a serene destination known for its conservation…
Learn More
Taiping Lake Gardens, located in the town of Taiping in Perak, Malaysia, is one of…
Learn More
Taiping Zoo, located in Taiping, Malaysia, is one of the oldest zoos in the country,…
Learn More
The Perak Museum in Taiping is the oldest museum in Malaysia, established in 1883. It…
Learn More
George Town, the capital of Penang Island in Malaysia, is a UNESCO World Heritage site…
Learn More
";
}
// 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';
}
});
});
}
});