Можно ли сгенерировать новый lat-lng, используя lat-lng & distance (Обратно, чтобы вычислить расстояние между 2 lat-lng)

Я получаю данные, как показано ниже, от устройств 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"
        }
    ]

рсси. мы будем предполагать расстояние от этих чисел (rssi). У меня есть устройство BLE.

Мы можем рассчитать расстояние между двумя широтами, используя математическую формулу. Я хочу изменить формулу.

Так что, если у меня есть одна широта и расстояние. Могу ли я рассчитать следующую точку (широта-долгота), используя расстояние и начальную точку (широта-долгота). Направление не имеет значения.

Так что в основном я хочу, чтобы формула, как lat2-lng2 = lat1-lng1 (некоторая формула) расстояние, как показано ниже

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

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

Другие вопросы по тегам