首先,我试图在 c# (.net 4) 中完成所有这些灾难,所以如果你想出一些代码来帮助我,我将不胜感激,但在这一点上真的任何事情都会有所帮助。
我有一种情况,我的设备只能获取 GSM 小区信息(顺便通过AT+KCELL
命令),所以我有一组关于小区塔的值(每个都有 LAC、MCC、MNC、小区 ID、信号强度和第一个时间进步)。因此,我认为我处于一个能够提出某种经度和纬度坐标的好地方(尽管不准确,但是,嗯)。这就是我寻求帮助的地方,因为现在我的小脑袋很困惑......
我可以看到各种提供单元代码解析的服务(Google、Open Cell 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
那么,有了所有这些信息,我如何以最准确的方式找到我的实际位置?