2012-12-12 29 views
12

ब्राउज़र में जावास्क्रिप्ट का उपयोग करके, मुझे अपने वर्तमान स्थान से दूसरे स्थान पर दूरी का निर्धारण कैसे कर सकता है जिसके लिए मेरे अक्षांश और देशांतर है?जावास्क्रिप्ट

उत्तर

30

अपने कोड एक ब्राउज़र में चलाता है, तो आप एचटीएमएल 5 जियोलोकेशन एपीआई का उपयोग कर सकते हैं:

window.navigator.geolocation.getCurrentPosition(function(pos) { 
    console.log(pos); 
    var lat = pos.coords.latitude; 
    var lon = pos.coords.longitude; 
}) 

एक बार जब आप वर्तमान स्थिति और अपने 'लक्ष्य' की स्थिति पता है, तुम दूरी उन दोनों के बीच में गणना कर सकते हैं जिस तरह से इस प्रश्न में दस्तावेज किया गया है: Calculate distance between two latitude-longitude points? (Haversine formula)

तो पूरा स्क्रिप्ट हो जाता है:

function distance(lon1, lat1, lon2, lat2) { 
    var R = 6371; // Radius of the earth in km 
    var dLat = (lat2-lat1).toRad(); // Javascript functions in radians 
    var dLon = (lon2-lon1).toRad(); 
    var a = Math.sin(dLat/2) * Math.sin(dLat/2) + 
      Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) * 
      Math.sin(dLon/2) * Math.sin(dLon/2); 
    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
    var d = R * c; // Distance in km 
    return d; 
} 

/** Converts numeric degrees to radians */ 
if (typeof(Number.prototype.toRad) === "undefined") { 
    Number.prototype.toRad = function() { 
    return this * Math.PI/180; 
    } 
} 

window.navigator.geolocation.getCurrentPosition(function(pos) { 
    console.log(pos); 
    console.log(
    distance(pos.coords.longitude, pos.coords.latitude, 42.37, 71.03) 
); 
}); 

जाहिर है मैं बोस्टन के केंद्र से 6643 मीटर की दूरी पर हूँ, एमए अभी (कि हार्ड-कोडेड दूसरा स्थान है)।

+0

धन्यवाद एक बहुत:

अधिक जानकारी के लिए इन लिंक देखें। मेरे पास एक और सवाल है। क्या आप किसी दिए गए स्थान के अक्षांश और देशांतर को खोजने में मेरी सहायता कर सकते हैं। – Dalee

+0

आपने पहले से क्या प्रयास किया था? –

+0

मैं अपने वर्तमान स्थान से किसी विशेष पते पर दूरी खोजने की कोशिश कर रहा था। वैसे भी मुझे वह मिला। जवाब देने के लिए धन्यवाद। – Dalee