다음 자바 스크립트 조각이 있습니다. 거리 함수 내부에서 로그 내용을 콘솔에 넣으려고 할 때마다 왜 계속 나노를 얻는 지 알 수 없습니다. 내가 lat1을 기록하더라도 NaN을 얻고 있습니다. 그러나 이것은 getDistance 함수 내에서만 발생합니다. 다른 곳에서는 모두 잘 작동합니다. 함수의 나머지는 NaN을 반환하기 때문에 분명히 작동하지 않습니다.위도와 자바 스크립트 사이의 거리 계산은 NaN 만 반환합니다
(function(){
var lat = 52.387388 ; //example lat
var lon = 4.646219 ; //example lon
function initCoords() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(createLatLong);
} else {
showError("Your browser does not support Geolocation!");
}
}
function createLatLong(position) {
var lat2 = position.coords.latitude;
var long2 = position.coords.longitude;
console.log(lat + "createLatLong");
getDistance();
}
function getDistance(lat, lon, lat2, long2) {
var R = 6371;
var dLat = (lat2-lat) * Math.PI/180;
var dLon = (long2-lon) * Math.PI/180;
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(lat * Math.PI/180) * Math.cos(lat2 * Math.PI/180) *
Math.sin(dLon/2) * Math.sin(dLon/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;
return d; }
window.onload = initCoords;
})();
여기 a fiddle
작품
라인을 교체하십시오 – adeneo