如何正确三角GSM手机发射塔来获得一个位置?(How to properly triangulate

2019-06-23 23:53发布

首先,我试图做的在C#这一切灾祸(.NET 4),所以如果你想出一些代码,以帮助我将不胜感激,但真的没有什么东西会在这一点帮助。

我有一个情况我有一个装置,其能够只获得GSM小区信息(经由顺便AT+KCELL命令),所以我有关于小区塔的值(每个具有LAC,MCC,MNC,小区ID,信号强度和的集合第一定时提前)。 我认为,因此,我在一个好地方,可以拿出某种形式的经度和纬度坐标(虽然不准确,但也MEH)。 这是我在哪里可以求援,因为现在我的小脑袋是困惑......

我可以看到,提供细胞码分辨率(谷歌,开放式小区ID等),各种服务和他们采取LAC,MCC等作为参数,并返回一个坐标。 我估计,他们回到什么会,因此,在给定的塔我传递的坐标。所以在我的情况,我可以送过所有的LAC等我有,并取回经度,纬度的集合。 辉煌,但不是在我的设备。 现在,我想我需要做某种三角的,这是我的知识的缺乏是伤害我。

所以,我说的对这么远? 假设我,我该如何进行这种计算(是有什么在那里,会告诉我该怎么做所有这些数字,或者甚至更好,一些开源库,我可以参考和养活所有这些东西到得到的东西明智) ?

我假设我需要使用的时间提前制定出从小区发射塔的一些大概的距离(可能使用信号强度以某种方式),但我必须做什么? 正如您所知道 - 我是我的深度的出路在这里!

例如,这是我可能会从上述回到AT命令:

5,74,33,32f210,157e,8101,50,0,79,3,32f210,157e,80f7,37,64,5,32f210,157e,810b,37,55,32,32f210,157e,9d3,27,41,33,32f210,157e,edf8,15

打破它,分析它,我会得到(我希望我解析这个权利 - 有机会存在,当然我的分析例程中的错误,但它看起来合理的):

Number of cells: 5

小区1

LAC: 5502
MNC: 1
MCC: 232
Cell ID: 33025
Signal: 80
ARFCN: 74
BSIC: 33
Timing advance: 0
Longitude: 14.2565389
Latitude: 48.2248439

小区2

LAC: 5502
MNC: 1
MCC: 232
Cell ID: 33015
Signal: 55
ARFCN: 79
BSIC: 3
Longitude: 14.2637736
Latitude: 48.2331576

小区3

LAC: 5502
MNC: 1
MCC: 232
Cell ID: 33035
Signal: 55
ARFCN: 64
BSIC: 5
Longitude: 14.2488966
Latitude: 48.232513

小区4

LAC: 5502
MNC: 1
MCC: 232
Cell ID: 2515
Signal: 39
ARFCN: 55
BSIC: 32
Longitude: 14.2488163
Latitude: 48.2277972

小区5

LAC: 5502
MNC: 1
MCC: 232
Cell ID: 60920
Signal: 21
ARFCN: 41
BSIC: 33
Longitude: 14.2647612
Latitude: 48.2299558

因此,所有这些信息我怎么发现,在最准确的方法,在这里我其实是谁?

Answer 1:

我可以帮你有点理论。

三角测量基本上是寻找3圆的交点。

每个移动塔是圆的中心。 圆的尺寸是相对于塔架的信号强度。

其中3圆重叠的地方是,其中用户是。

你可以做一些非常基本的三角如下:

3 Towers at 
 tx1,ty1 
 tx2,ty2 
 tx3,ty3

With signal strengths s1, s2, s3

We calculate the weight of each signal. Essentially a number from 0 to 1 for each tower where the sum of the weights adds up to 1.

Weighted signal w1, w2, w3 where:
 w1 = s1/(s1+s2+s3)
 w2 = s2/(s1+s2+s3)
 w3 = s3/(s1+s2+s3)


User will be at
x: (w1 * tx1 + w2 * tx2+ w3 * tx3)
y: (w1 * ty1 + w2 * ty2+ w3 * ty3)

下面是使用你的问题的值的工作示例:


s1 = 80
s2 = 55
s3 = 55
s4 = 55
s5 = 21

w1 = 80 / ( 80 + 55 + 55 + 55 + 21 ) 
w2 = 55 / ( 80 + 55 + 55 + 55 + 21 ) 
w3 = 55 / ( 80 + 55 + 55 + 55 + 21 ) 
w4 = 55 / ( 80 + 55 + 55 + 55 + 21 ) 
w5 = 21 / ( 80 + 55 + 55 + 55 + 21 ) 

w1 = 0.3007519
w2 = 0.2067669
w3 = 0.2067669
w4 = 0.2067669
w5 = 0.0789474

1. Longitude: 14.2565389
1. Latitude: 48.2248439

2. Longitude: 14.2637736
2. Latitude: 48.2331576

3. Longitude: 14.2488966
3. Latitude: 48.232513

4. Longitude: 14.2488163
4. Latitude: 48.2277972


5. Longitude: 14.2647612
5. Latitude: 48.2299558


Location Longitude = 
 14.2565389 * 0.3007519 + 
 14.2637736 * 0.2067669 + 
 14.2488966 * 0.2067669 +
 14.2488163 * 0.2067669 +
 14.2647612 * 0.0789474

Location Latitude: = 
 48.2248439 * 0.3007519 + 
 48.2331576 * 0.2067669 + 
 48.232513 * 0.2067669 +
 48.2277972 * 0.2067669 +
 48.2299558 * 0.0789474

Result Longitude: 14.255507
Result Latitude: 48.2291628



Answer 2:

这不是一个真正的答案,但它的首发,我可能会添加更多的东西:

该小区ID发表看来:

http://openbmap.org/

我发现从连接到其他的小区ID数据源此Wiki网页链接: http://en.wikipedia.org/wiki/Cell_ID )

看到页面的底部是小区ID数据的链接:

http://openbmap.org/latest/cellular/raw/input_raw.zip

此外,我发现这个YouTube视频,其中一人与一些应用程序,有手机信号塔的位置似乎玩了:

http://www.youtube.com/watch?v=CYvVN5dJD7A

可能是小区ID和信号强度之间可以做一个猜测..

但据我所知一般的三角测量,你需要知道至少有三个塔的确切位置,并从他们身上(这可能是与信号强度的粗略距离,但它可能只是太准确)的精确距离。

它看起来像维基百科说,它在这样做的话..使用的组合,其细胞的你在,最接近塔和信号强度,让您的位置:

http://en.wikipedia.org/wiki/Mobile_phone_tracking



文章来源: How to properly triangulate GSM cell towers to get a location?