基于距离的极大似然估计法利用多个已知节点的位置及节点与目标点位置的距离来计算出目标点的位置。
极大似然估算法
极大似然估算法定位原理:假设定位区域目标点,n个已知位置和距离目标点距离的节点,可得到目标点与n个节点之间的距离方程。
设节点的坐标为(x1,y1) , (x2,y2) , … , (xn,yn),目标点坐标 (x,y),各节点到目标点的距离d1 , d2,…, dn,则可的方程组 ( xi - x )² + (yi -y)² = di² , 其中I∈[1,n]。
对方程组进行求解,可得x,y坐标
代码实现
用于运算的节点简单二维空间节点对象,主要包含坐标及距离,用于极大似然算法估算。
|
|
极大似然算法,对已知节点进行计算,得到目标节点
|
|
考虑到实际情况下,节点与目标点会随距离的增大导致误差变大,故可以通过节点吸附对目标点坐标进行校正。
在参与节点与目标点满足情况的前提下,校正步骤如下:
- 判断目标点距离最近节点nNode的距离distance
- 若disatance小于吸附临界值(比如:1m)
- 根据像素与实际地理米转换关系计算出极大似然估算法节点mNode与nNode的距离distancePointToNearest
- 若distancePointToNearest不大于distance,则不需要进行校正
- 否则计算出mNode与nNode位置之间连线与distnace处交点的坐标,即为校正后的坐标
- 否则不进行吸附校正
|
|
参考文档
https://wenku.baidu.com/view/1db9c08a71fe910ef12df8df.html
https://wenku.baidu.com/view/3dba1baef524ccbff12184af.html?re=view
http://www.doc88.com/p-6037723035623.html