diff --git a/app.js b/app.js index ca11278..dda9e1c 100644 --- a/app.js +++ b/app.js @@ -1,35 +1,3 @@ -// Qibla Finder - محدد القبلة -const KAABA = { lat: 21.4225, lng: 39.8262 }; - -function toRad(deg) { return deg * Math.PI / 180; } -function toDeg(rad) { return rad * 180 / Math.PI; } - -function getQiblaBearing(lat, lng) { - const latR = toRad(lat), lngR = toRad(lng); - const kLatR = toRad(KAABA.lat), kLngR = toRad(KAABA.lng); - const deltaLng = kLngR - lngR; - const y = Math.sin(deltaLng) * Math.cos(kLatR); - const x = Math.cos(latR) * Math.sin(kLatR) - Math.sin(latR) * Math.cos(kLatR) * Math.cos(deltaLng); - return (toDeg(Math.atan2(y, x)) + 360) % 360; -} - -document.getElementById('locateBtn').addEventListener('click', () => { - if (!navigator.geolocation) { - alert('متصفحك لا يدعم تحديد الموقع'); - return; - } - document.getElementById('bearing').textContent = 'جاري التحديد...'; - navigator.geolocation.getCurrentPosition( - (pos) => { - const { latitude, longitude } = pos.coords; - const bearing = getQiblaBearing(latitude, longitude); - document.getElementById('bearing').textContent = `${bearing.toFixed(1)}°`; - document.getElementById('coords').textContent = `خط العرض: ${latitude.toFixed(4)} | خط الطول: ${longitude.toFixed(4)}`; - document.getElementById('needle').style.transform = `translate(-50%, -100%) rotate(${bearing}deg)`; - }, - (err) => { - document.getElementById('bearing').textContent = 'فشل تحديد الموقع'; - console.error(err); - } - ); -}); +const K={lat:21.4225,lng:39.8262}; +function B(lat,lng){const d=(K.lng-lng)*Math.PI/180,lr=lat*Math.PI/180,kr=K.lat*Math.PI/180,y=Math.sin(d)*Math.cos(kr),x=Math.cos(lr)*Math.sin(kr)-Math.sin(lr)*Math.cos(kr)*Math.cos(d);return(Math.atan2(y,x)*180/Math.PI+360)%360} +document.getElementById('btn').addEventListener('click',()=>{navigator.geolocation.getCurrentPosition(p=>{const b=B(p.coords.latitude,p.coords.longitude);document.getElementById('b').textContent=b.toFixed(1)+'\u00b0';document.getElementById('n').style.transform='translate(-50%,-100%) rotate('+b+'deg)'},()=>{document.getElementById('b').textContent='Failed'})});