Mit JavaScript im Browser, wie kann ich die Entfernung von meinem aktuellen Standort zu einem anderen Ort, für den ich die Breite und Länge habe?Wie finde ich meine Entfernung zu einem bekannten Ort in JavaScript
12
A
Antwort
30
Wenn Ihr Code in einem Browser ausgeführt wird, können Sie den HTML5 Geolocation-API verwenden:
window.navigator.geolocation.getCurrentPosition(function(pos) {
console.log(pos);
var lat = pos.coords.latitude;
var lon = pos.coords.longitude;
})
Sobald Sie die aktuelle Position und die Position Ihres „Ziel“ kennen, können Sie den Abstand zwischen ihnen berechnen in Der Weg dokumentiert in dieser Frage: .
Also das komplette Skript wird:
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)
);
});
Offenbar bin ich 6643 Meter vom Zentrum von Boston, MA jetzt (das ist die hartcodierte zweite Stelle).
Sehen Sie diese Links für weitere Informationen:
Vielen Dank. Ich habe noch eine Abfrage. Können Sie mir helfen, die Breite und Länge eines bestimmten Ortes zu finden? – Dalee
Was hast du schon versucht? –
Ich habe versucht, Entfernung von meinem aktuellen Standort zu einer bestimmten Adresse zu finden. Jedenfalls habe ich das gefunden. Danke für die Antwort. – Dalee