ब्राउज़र में जावास्क्रिप्ट का उपयोग करके, मुझे अपने वर्तमान स्थान से दूसरे स्थान पर दूरी का निर्धारण कैसे कर सकता है जिसके लिए मेरे अक्षांश और देशांतर है?जावास्क्रिप्ट
12
A
उत्तर
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 मीटर की दूरी पर हूँ, एमए अभी (कि हार्ड-कोडेड दूसरा स्थान है)।
धन्यवाद एक बहुत:
अधिक जानकारी के लिए इन लिंक देखें। मेरे पास एक और सवाल है। क्या आप किसी दिए गए स्थान के अक्षांश और देशांतर को खोजने में मेरी सहायता कर सकते हैं। – Dalee
आपने पहले से क्या प्रयास किया था? –
मैं अपने वर्तमान स्थान से किसी विशेष पते पर दूरी खोजने की कोशिश कर रहा था। वैसे भी मुझे वह मिला। जवाब देने के लिए धन्यवाद। – Dalee