Astronomical Observatory
About This Attraction
Jantar Mantar in Jaipur is a remarkable collection of nineteen architectural astronomical instruments. Built by Maharaja Sawai Jai Singh II in the early 18th century, it is one of the largest observatories ever constructed. The site features the worlds largest stone sundial, the Samrat Yantra, which is an impressive sight for visitors. Transitioning from historical significance to practical details, its important to note that Jantar Mantar opening hours are typically from 9:00 AM to 4:30 PM, allowing ample time for exploration.
Visitors will find various instruments designed for different astronomical purposes, each with its unique function. The instruments are made primarily of stone and brass and were used to measure time, track celestial bodies, and predict eclipses. Admission fees apply, with discounts available for students and children. Conveniently located close to other major attractions in Jaipur, Jantar Mantar offers an educational experience for those interested in astronomy and Indian history.
Location Details
Address
Gangori Bazaar, J.D.A. Market, Pink City, Jaipur, Rajasthan 302002, India
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
₹50 for Indians, ₹200 for Foreigners
Child
Free for children below 7 years
Student
₹15 for Indian students
Senior
₹50 for Indian seniors
Opening Hours & Booking
Open
Days
Monday to Sunday
Hours
9:00 AM to 4:30 PM
Seasonality
Open all year
Booking
Booking Required?
No
Nearby Attractions
India Gate is a prominent landmark located in the heart of New Delhi, India. Designed…
Learn More
The Red Fort in Delhi is a historical fortification that was the main residence of…
Learn More
Humayuns Tomb in Delhi is a significant historical site, known for being the first garden-tomb…
Learn More
The Lotus Temple in Delhi is a Baháí House of Worship that stands out for…
Learn More
Qutub Minar in Delhi is a UNESCO World Heritage Site and stands as a significant…
Learn More
Fatehpur Sikri is an ancient city located near Agra, India, built by Emperor Akbar in…
Learn More
The Tomb of Itimad-ud-Daulah, often referred to as the Baby Taj, is located in Agra,…
Learn More
Agra Fort, located in Agra, India, is a UNESCO World Heritage site and an important…
Learn More
Mehtab Bagh is a historic garden complex located in Agra, India, just north of the…
Learn More
The Taj Mahal in Agra is a UNESCO World Heritage site and one of the…
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';
}
});
});
}
});