是否有可能使用lat-lng& amp;生成新的lat-lng。距离(反向计算2 lat-lng之间的距离)

时间:2017-12-06 15:39:57

标签: angularjs google-maps math google-maps-api-3 rssi

我从BLE设备接收如下数据。

"payload": [
        {
            "r": -90,
            "t": "1970-01-18T10:30:17.823Z"
        },
        {
            "r": -80,
            "t": "1970-01-18T10:30:17.833Z"
        },
        {
            "r": -70,
            "t": "1970-01-18T10:30:17.843Z"
        }
    ]

r是rssi。我们将假设这些数字之间的距离(rssi)。我有BLE设备的lat-lng。

我们可以使用数学公式计算两个lat-lng之间的距离。我想要反向配方。

所以,如果我有一个lat-lng&一段距离。我可以使用距离&来计算下一个点(lat-lng)吗?起点(lat-lng)。方向并不重要。

基本上我想要的是像 lat2-lng2 = lat1-lng1(某些公式)距离这样的公式

function(lat1, lng1, distance){
    /////some calculaitons to calculate lat2 & lng2
    return {'lat2' :lat2, 'lng2' : lng2};
}

1 个答案:

答案 0 :(得分:1)

使用Google Maps JavaScript API,您可以使用computeOffset函数,该函数接受确定位移方向的初始位置,距离和方向。例如

    var ret = google.maps.geometry.spherical.computeOffset(
        new google.maps.LatLng(0, 0), 1000, 0);

    console.log(ret.lat(), ret.lng());

这应该返回一个零经度和纬度对应于1 / R弧度的位置(R代表球形模型中地球的半径)

或者,您可以直接实施公式:http://www.edwilliams.org/avform.htm#LL