我从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};
}
答案 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