关于计算坐标之间的距离

时间:2012-07-05 10:00:52

标签: javascript gps position distance

我发现这篇文章: Google Maps - How to get the distance between two point in metre?

我有同样的问题,我的变量“a”具有NaN值。如果我能做的话,我不喜欢使用google api。

我正在使用此网页中的代码:http://www.movable-type.co.uk/scripts/latlong.html

但是我的变量仍然会返回NaN ......

这是我的代码:

function actualizaLimpieza(jsonData){ //jsonData keeps all points (lat&lon)
    var latJSON; 
    var lonJSON;
    var R = 6371; // km
    var dLat;
    var dLon;
    var lat1;
    var lat2;

    var a; 
    var c; 
    var d;

    latGPS = 43.466827534582606; //this are supossed to be gotten by gps, but for try...
    lonGPS = -3.863614797592163;

    for(i = 0; i < jsonData.length; i ++){
        latJSON = jsonData[i].lng; 
        lonJSON = jsonData[i].lat;
        dlat = toRad(latJSON-latGPS);
        dlon = toRad(lonJSON-lonGPS); 
        latGPS = toRad(latGPS);
        latJSON = toRad(latJSON);

        a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(latGPS) * Math.cos(latJSON);
        alert("a vale: " + a); //returns NaN
        c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
        alert("c vale: " + c);
        d = R * c;  
        alert("d vale: " + d);
        if(d < 0,010){ 
            alert("less than 10 meters");
        }
    }
}

function toRad(degrees){
    return degrees * Math.PI / 180;
}

我是否应该进行任何更改以使其正常工作?我应该添加的任何脚本?我还没有为这项工作添加任何人。

好的,我写的变量失败了:dlat!= dLat ......现在它或多或少地起作用了

0 个答案:

没有答案