まず第一に、私はこのすべての災害を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
では、これらすべての情報を使用して、実際にどこにいるのかを最も正確に見つけるにはどうすればよいでしょうか。