2011-10-25 25 views
1

我们假设,隐藏在森林中,有一个信标。我用一架直升机飞越森林,随机间隔平飞烽火台。对于每个ping,我都会得到一个纬度/经度对以及该点(但是没有方向)的信标的信号强度。PHP:使用经纬度/信号强度数据查找信标的位置

  1. 我该如何计算PHP中的信标位置?

  2. 如果在稍后的时间,我会再读一遍,我会如何将这个添加到我目前对灯塔位置的估计中?

注:我们不知道森林是如何影响信号强度,但是我们可以假设的效果是一致的 - 信标可以在一个空地上,或埋在石头下面。

+0

嗯......闻起来有点像家庭作业给我。 –

+0

1.你不能。您最初提供的任何值都不是矢量。即使有两个值对,你也不能。你将不得不有某种类型的表,让你相对于信标强度的距离。 – John

+0

@布莱恩,不是作业,相信我。这有一个现实生活应用 –

回答

1

我假设你得到了ping的经纬度。

你将需要一个至少4坪,在一个2×2的方格(尽可能接近这个)。更多的ping可能会有帮助,但是你将不得不处理测量错误。

这是一个很差的Ascii图纸,其中包含了强度值。假设北方向上。

X (6 strength)    X (4 strength) 
. 
. 
. 
X (5 strength)    X (3 strength) 

根本没有做任何数学运算,您可以确定信标位于您进行这些测量的中心西北部的某处。

如果您可以通过信号强度(近似)计算距离,那么您可以猜测地图上的某个点。

如果您无法计算距离,只需ping另一个2 x 2的方格,您认为该点可能是。在某些时候,优势将接近平等,并且您可以假设灯塔靠近广场的中心。

我希望这会有所帮助,而且在直升机上做起来也不算太费时。

编辑添加:信标的信号强度与距离的平方成反比。 (distance = sqrt(x factor/signal strength))假设您已经确定了x因子(12),因此您知道信号强度9代表地图上半径为1.1英寸的圆,并且信号强度3代表半径2.0英寸的圆地图。

因此,当您在左下角看到ping时,可以将ping放在地图上,然后绘制一个半径为1.5英寸的圆。当您在左上角进行ping操作时,可以将ping放在地图上,然后绘制一个半径为1.4英寸的圆。

现在,这两个圆圈将相交在地图上的某个地方。在该交叉点的某处将是灯塔的位置。

现在直升机转过身来,你可以在右上角找到ping。您绘制一个半径为1.7英寸的圆。然后你在右下角得到ping,然后你画一个半径为2英寸的圆。

四个圆的交点应该组成一个小的粗四边形。

你飞到四边形的中心,并采取另一个平。你应该获得相当高的信号强度。拆下一根绳子,找到灯塔和搁浅的徒步旅行者,返回绳子,让直升机将你和搁浅的徒步旅行者拉到安全的地方。

+0

如果我不知道各种阅读材料的相对位置,这种工作是否会奏效? –

+0

@Adrien Hingert:我不明白你的问题。你没有ping的纬度和经度吗?您可以在地图上绘制ping图以查看ping的相对位置。 –

+0

我不知道我会如何用你提供的信息做数学。 –