JavaScript地理位置:检查2 gps坐标的距离

时间:2014-02-21 14:47:13

标签: javascript html5 geolocation gps

我有两个常数 - gps lalitude和longtitude。我通过HTML5 JS API获得用户位置。 getCurrentPosition()方法提供coords.accuracy,显示我的位置准确性。 我需要检查常数和getCurrentPosition()与gps坐标的距离是否小于10米。

是否有任何库或jQuery插件,或者我必须自己编写它?

1 个答案:

答案 0 :(得分:0)

以下代码是我在Google Maps API v3中使用的代码。也许你可以用你的库做类似的事情。 thersineine公式考虑到地球是一个球体,这是我计算距离的最佳选择。 Google API附加了library来执行此操作。

通常你会发现你的库来计算距离,你会想出自己的逻辑。 再次,从这个逻辑中取出你需要的东西,并尝试你找到的库。

orderMarkersByDistance: function (markers) {
    var flex = this,
        geodesic = [],
        arrClosest = [],
        to, distance, arrDistances,
        map = this.root.gmap3("get");

    // loop through markers and calculate their distances from the center
    for (var i = 0; i < markers.length; i++) {
        to = new google.maps.LatLng(markers[i].lat, markers[i].lng);
        distance = google.maps.geometry.spherical.computeDistanceBetween(map.center, to);
        geodesic.push([i, distance]);
    }

    // sort the distances
    geodesic.sort(function (a, b) { return a[1] - b[1]; });

    // optionally, take the closest distances
    arrDistances = geodesic.slice(0, 3);

    // return closest markers
    $.each(arrDistances, function (idx, item) {
        arrClosest.push(markers[item[0]]);
    });

    return arrClosest;
},