【问题标题】:Is it possible to generate new lat-lng using lat-lng & distance (Reverse to calculate distance between 2 lat-lng)是否可以使用 lat-lng & distance 生成新的 lat-lng(反向计算 2 lat-lng 之间的距离)
【发布时间】:2018-05-20 13:25:33
【问题描述】:

我正在从 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};
}

【问题讨论】:

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


    【解决方案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

    【讨论】:

    • 我必须在服务器(API)端使用它。所以谷歌地图 api 将不起作用。我会测试直接公式。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2018-10-22
    • 2017-05-05
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    相关资源
    最近更新 更多