使用PhoneGap计算移动人的速度

时间:2013-11-29 20:04:47

标签: javascript cordova

我正在使用PhoneGap API制作Android / iPhone应用程序。我正在使用Geolocation API,我想计算移动对象的速度,但我不明白该怎么做。

1 个答案:

答案 0 :(得分:1)

您要找的是Haversine Formula

以下是leaflet sourcecode中的javascript实现。

distanceTo: function (other) { // (LatLng) -> Number
    other = L.latLng(other);

    var R = 6378137, // earth radius in meters
        d2r = L.LatLng.DEG_TO_RAD,
        dLat = (other.lat - this.lat) * d2r,
        dLon = (other.lng - this.lng) * d2r,
        lat1 = this.lat * d2r,
        lat2 = other.lat * d2r,
        sin1 = Math.sin(dLat / 2),
        sin2 = Math.sin(dLon / 2);

    var a = sin1 * sin1 + sin2 * sin2 * Math.cos(lat1) * Math.cos(lat2);

    return R * 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
}

latLng是一个具有latlng属性的对象。

对于速度,请保存两个坐标的时间戳并计算距离/时间增量。