Можно ли сгенерировать новый 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