Как правильно провести триангуляцию вышек сотовой связи GSM, чтобы определить местоположение?

Во-первых, я пытаюсь сделать всю эту катастрофу в c #(..net 4 ), поэтому, если вы придумаете какой-нибудь код, который поможет мне, я был бы признателен, но на самом деле что-нибудь поможет в этот момент.

У меня есть ситуация, когда у меня есть устройство, которое может получать информацию о соте GSM (случайно с помощью команды AT+KCELL), поэтому у меня есть набор значений о вышках сотовой связи (, каждая из которых имеет LAC, MCC, MNC, идентификатор соты, мощность сигнала и первое опережение по времени ). Поэтому я думаю, что я нахожусь в хорошем месте, чтобы иметь возможность придумать какую-то координату долготы и широты (, хотя и неточную, но, ну, м-м-м ). Вот к кому я обращаюсь за помощью, потому что теперь мой маленький мозг сбит с толку...

Я вижу различные сервисы, которые предоставляют разрешение сотового кода (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

Итак, со всей этой информацией, как мне найти, в самый точный способ, где я на самом деле?

29
задан kmp 30 April 2015 в 10:01
поделиться