Алгоритм определения местоположения вышек сотовой связи и алгоритм триангуляции (аналогично OpenCellID / Skyhook / Google MyLocation) - PullRequest
1 голос
/ 23 декабря 2010

при условии, что у меня есть БД отпечатков пальцев для сотовых вышек. Данные (включая Long. & Lat. CellID, уровень сигнала и т. Д.) Достигаются путем «wardriving», аналогично OpenCellID.org.

Я хотел бы иметь возможность узнать местоположение клиентского мобильного телефона без GPS (аналогично OpenCellID / Skyhook Wireless / Google 'MyLocation'), который отправляет мне информацию о вышках сотовой связи, которые он "видит" в данный момент: вышка сотовой связи и еще 6 соседних вышек сотовой связи (при условии GSM).

Я читал и гуглил его долгое время и натолкнулся на несколько эффективных теорий, таких как использование пространственных возможностей SQL 2008, евклидов алгоритм или модель Маркова.

Однако мне не хватает практического решения, желательно на C # или с использованием SQL 2008:)

Расчет местоположения будет производиться на сервере, а не на мобильном телефоне клиента. единственной задачей телефона является отправка через HTTP / GPRS, башню, к которой он подключен, и другие соседние сотовые вышки.

Любой вклад приветствуется, я так много читал и пока не очень продвинулся.

Thanx

Ответы [ 2 ]

2 голосов
/ 03 января 2011

Почему бы вам не выполнить простой расчет триангуляции на основе положения ячейки и уровня сигнала?

0 голосов
/ 19 мая 2011

Вы не можете выполнить триангуляцию, так как телефон сканирует только сигналы от двух базовых станций, а не от трех. Кроме того, я не знаю, возможно ли каким-либо образом получить доступ к данным обеих станций, потому что вам придется иметь дело с низкоуровневыми протоколами GSM / 3G.

Используя AT-команды или функции более новых SDK телефонов (Java, Android, iPhone, Symbian ...), вы можете получить информацию об идентификаторе ячейки, lac, mnc, mcc, силе сигнала и опережении времени.

Исследуя опережение времени, вы можете определить, насколько далеко вы находитесь от базовой станции, когда сигнал распространяется со скоростью света, но вы не можете определить точное положение, просто «круг возможных положений», когда вы вычисляете приблизительный радиус (приблизительный, поскольку в общем случае сигнал распространяется не напрямую - он может отражаться от близлежащих объектов).

Если вы работаете с .NET здесь - это пример получения местоположения базовой станции из cellID и других данных, доступных на вашем телефоне. Надеюсь, это поможет.

...