Как тут фото добавлять ?
Вот в общем фото http://moto.kiev.ua/forum/?trid=tuning/1240604748218&vp=0
И так самое самое интересное,самый смак - МЕСТОНАХОЖДЕНИЕ НУЖНО ЖЕ?
а что если я вам скажу, что купив у меня прибамбас вы получаете доступ к моему ресурсу в интернете и ввели номер телефона,моментально получили местонахождение с точностью до 5 метров
Ну если вы не хотите покупать , то тогда я вам открою секрет как это делать
...Сами делаете жучок (такой как на фото ) и далее займемся программированием :
Используем мобильные вышки!
Старая байка о том, что спецслужбы могут найти человека по сигналу от его мобильника - один из тех случаях, когда на самом деле все так и есть. Да чего там спецслужбы, если на это способна даже совершенно бесплатная программа Google Maps (www.google.com/gmm).
По сути, это удобная оболочка для доступа к одноименному веб-сервису, позволяющему смотреть фотографии местности со спутника, рельеф и – во многих случаях – карты с возможностью проложить маршруты. Думаю, рассмотреть крышу своего дома через maps.google.com пробовали все. Работать с таким сайтом через браузер на мобильном телефоне (даже если это сверхскоростная Opera Mini) крайне сложно, поэтому в Google, подсуетившись, сделали удобную оболочку для просмотра карт. Оформили ее в виде приложения для самых разных платформ – от обычных мобильных, поддерживающих Java, до смартфонов и коммуникаторов на Windows Mobile и Symbian S60 3rd Edition, престижных BlackBerry, а теперь еще и Android, к которой мы пока не привыкли, но очень скоро будем воспринимать как одну из основных платформ для телефона. В том же iPhone Google Maps встроена по умолчанию. Так вот, помимо удобного просмотра этих самых карт и спутниковых снимков, у утилиты есть одна замечательная кнопка «Мое месторасположение». Один клик - и на карте отмечается нахождение телефона. Да, для владельцев трубок с GPS это сущая ерунда: нашли чем удивить! Но надо видеть лица тех пользователей, которые видят на экране свое месторасположение, хотя никаких навигационных приблуд у них не было и в помине! Впрочем, это только так кажется.
Телефонная трубка всегда находится в зоне действия, по меньшей мере, одной базовой станции сотовой сети. Ну, или не находится - но в этом случае от нее толку не более чем от кирпичика. Любая из базовых станций имеет некоторый набор параметров, которые получает телефон - благодаря этому каждую БС можно распознать. Один из таких параметров – CellID (сокращенно CID) - уникальный номер для каждой соты, выданный оператором. Зная его, ты можешь распознать базовую станцию, а зная расположение базовой станции, можешь, понять где находишься. Точность варьируется от нескольких сотен метров и до нескольких километров, но это неплохая отправная точка, чтобы разобраться с координатами.
Получается, имея в наличии табличку, где в соответствии с каждой базовой станцией будет сопоставлены ее координаты, можно примерно вычислить положение абонента. А раз Google Maps может так лихо определять месторасположение человека, то у него такая база данных есть. Но откуда? Расположение базовых станцией различных операторов – пускай и не секретная, но вряд ли открытая информация. Даже учитывая масштабность проектов Гугла, с трудом можно поверить, что тот договорился со всеми операторами сотовой связи - определение местоположения работает в любом месте (забегая вперед, скажу, что правильнее говорить «может работать в любом месте»). Ответ скрывается в лицензионном соглашении во время установки программы, на который мы, конечно же, забили и сразу нажали «Я согласен»
. А ведь там черным по белому написано, что, принимая соглашение, мы разрешаем программе анонимно передавать на сервер информацию о текущем расположении и информации о сотовых вышках поблизости. Да! Базу данных с примерными координатами базовых станций составляют для Google сами пользователи Google Maps, имеющие на борту своих телефонов и коммуникаторов встроенный приемник GPS. И что самое классное: даже при полном отказе от использования как официальных, так и неофициальных (собранных энтузиастами с помощью специальных сканнеров - подробнее читай во врезке) баз с расположением станций, функция для определения месторасположения работает на «ура». Проверь сам.
GSM-навигация своими руками
Возможность посмотреть в программе свое расположение - само по себе здорово, но разве ж можно отказаться от соблазна использовать базы Google'а в корыстных целях? Как тебе, например, идея создать собственный трекер, который определял бы текущее расположение БС и передавал его на наш сервер? Эдакий жучок средствами самого телефона, который работает везде и всегда!
Компания не разглашает протокол взаимодействия Google Maps, не публикуя API, однако его легко вскрыли, просто проснифав трафик и реверснув часть кода. Помимо http-запросов на загрузку карт, отчетливо видно, что программа отправляет запросы по адресу http://www.google.com/glm/mmap, причем именно тогда, когда пользователь желает получить текущее месторасположение. Вот и попался наш скриптик – в качестве параметров ему передаются технические значения базовой станции: MCC, MNC, LAC и CellID.
MCC - код страны (для России - 250)
MNC - код сети (МТС - 01, Мегафон - 02, Билайн - 99 и т.п.)
LAC - код локальной зоны (другими словами, совокупности базовых станций, обслуживаемых одним контроллером)
CellID (CID) - идентификатор, состоит из номеров базовой станции и сектора
Зная, куда посылать данные, осталось эти значения получить! Наиболее простой способ - прямо в программе Google Maps перейти в «Справку», там щелкнуть «Общие сведения», и в самом конце этой странички будет строка с параметрами в формате myl:MCC:MNC:LAC:CellID. Куда больший простор для деятельности предоставляют специальные программы netmonitor'ы: с их помощью можно логировать параметры при переключении от одной станции к другой, извлекать параметры «соседей» (находящихся в поле зрения других БС), да и просто получать куда более подробную информацию. Для каждой платформы есть свои реализации нетмониторов с различными возможностями - ты можешь выбрать программу под себя.
Теперь, когда все необходимые параметры получены, можно обратиться на сервер и попробовать получить ответ. Приведу для этого несложный скрипт на Python'е, который написал наш соотечественник Skvo и опубликовал на форуме forum.netmonitor.ru:
net, cid, lac = 25002, 9164, 4000
import urllib
a = '000E000001B0000030000'
b = hex(cid)[2:].zfill(8) + hex(lac)[2:].zfill(8)
c = hex(divmod(net,100)[1])[2:].zfill(8) + hex(divmod(net,100)[0])[2:].zfill(8)
string = (a + b + c + 'FFFFF00000').decode('hex')
try:
data = urllib.urlopen('http://www.google.com/glm/mmap',string)
r = data.read().encode('hex')
if len(r) > 14:
print float(int(r[14:22],16))/100000, float(int(r[22:30],16))/100000
else:
print 'no data in google'
except:
print 'connect error'
Для запуска, естественно, потребуется интерпретатор Python'а (обязательно 2-й ветки, потому как на 3-й не запустится), который можно скачать с сайта http://python.org/download/releases. В первой строке скрипта, как несложно догадаться, необходимо подставить NET (MCC и MNC, написанные слитно), CID, LAC. В результате скрипт сформирует запрос на сервер http://www.google.com/glm/mmap и отправит его. Если базовая станция с этими параметрами есть в базе, то на экран выведутся координаты, например, «59.200274 39.836925». В противном случае скрипт выдаст ошибку: «no data in google». Любителям программировать не составит труда добавить пару строчек, например, по указанным NET и LAC перебрать все варианты CID (от 1 до 65536), и, посмотрев, какие сектора имеются у Гугла, узнать их примерные координаты. Если тебе неохота морочить голову скриптами, на наш диск мы выложили GUI-программу, написанную на C# (исходники прилагаются). В этом случае ты автоматически получишь еще и ссылку, отображающую координаты на сайте Google Maps. Ссылки на реализации на других языках смотри в боковом выносе.
Интересно, что на сервер передаются всего лишь три параметра, причем ключевыми являются только значения LAC и CellID. А MCC/MNC необходимы на тот случай, если в базе есть несколько пар с одинаковыми LAC, CellID. При этом телефон может получать намного больше информации о текущей станции – взять хотя бы мощность сигнала, однако эти параметры в расчетах не используются. Получается крайне простой алгоритм. Один сектор - одна координата, независимо от того, находится ли пользователь в 100 метрах от базовой станции или в километре от нее, координата будет одинаковая!
Отдельно хочу сказать, что замечательный проект «Яндекс.Карты», который я особенно люблю за возможность отображения точек, имеет точно такой же функционал. И ровно так же, как и Google, предоставляет своей программе данные о точке по запросу с указанием Cell ID, LAC, NET параметров:
http://mobile.maps.yandex.net/cellid_location/?&cellid=%d&operatorid=%d&countrycode=%d&lac=%d
Единственное отличие в том, что ответ сервис «Яндекса» возвращает в XML-формате, который легко и удобно парсится для извлечения любых параметров.
О базовых станциях сотовых сетей
В статье я упоминал о неофициальных базах данных с расположением вышек различных сотовых сетей. В интернете существует немало проектов, где энтузиасты делятся собранной нетмониторами информацией. Из иностранных это – celldb.org/aboutapi.php, www.opencellid.org/api, gsmloc.org/code, cellid.telin.nl. Каждый из них имеет простой API для получения координат с помощью обычного HTTP-запроса, при этом в качестве параметров указываются традиционные MCC, MNC, Cell ID и LAC.
Отдельно хочу упомянуть наш русский проект Netmonitor.ru, в котором собрана инфа о большом количества БС Мегафона, МТС, Билайна, ТЕЛЕ2 и даже Skylink. К тому же, на сайте располагается еще и крупнейший форум для исследователей сотовых сетей.
Как заставить работать навигационные программы
Какой бы замечательной ни была программа Google Maps, использовать ее в качестве навигационного инструмента, мягко говоря, затруднительно. Было бы здорово, пускай и примерные, но все-таки координаты скормить нормальной программе навигации, с хорошими картами, подробной адресацией и проработанными алгоритмами прокладки маршрута. Некоторые программы, например, «Навител» и «Автоспутник» имеют еще один плюс: они умеют подгружать информацию о пробках и учитывать ее при составлении маршрута. Чисто теоретически, ничего не стоит написать подобное приложение самому. Алгоритм прост:
Получаем текущие координаты при каждой смене базовой станции;
Отправляя запрос на спутник, получаем примерные координаты;
Эмулируем в системе последовательный порт и в простом формате NMEA, который используют GPS-навигаторы, транслируем туда текущие координаты.
Именно этот принцип лежит в программе VirtualGPS (www.kamlex.com), предназначенной для устройств на платформе Windows Mobile 2003, WM 5, WM 6, WM 6.1. Бесплатная lite версия программы определяет текущее расположение по вышкам сотовой связи и эмулирует GPS. После запуска прога создает в системе новый порт, который нужно указать в настройках любимой навигационной программы - и та, ничего не подозревая, будет считать, что подключена к настоящему GPS-приемнику.
WWW
Параметры Google Maps:
http://mapki.com/wiki/Google_Map_Parameters
Делаем GPS-адаптер для мобильного телефона своими руками:
http://tinkerlog.com/2007/07/13/interfacing-an-avr-controller-to-a-gps-mobile-phone
Мануал по получению координат по данным сотовой точки через Yahoo:
http://developer.yahoo.com/yrb/zonetag/locatecell.html
Реализация работы с базой данных Google Maps
На PHP:
http://www.witracks.com.br/gmaps.txt
j2me:
http://www.mapnav.spb.ru/site/e107_plugins/forum/forum_viewtopic.php?9736
android:
http://www.anddev.org/poor_mans_gps_-_celltowerid_-_location_area_code_-lookup-t257.html
C#:
http://www.sebbi.de/archives/2008/04/25/google-maps-mylocation-in-c-sharp
На Python для S60:
http://blog.jebu.net/2008/07/google-cell-tower-mapping-with-python-on-s60
На C#:
http://maps.alphadex.de/datafiles/fct0e1b11782832f02.cs
На Java для Android OS:
http://davanum.wordpress.com/2007/12/01/android-much-better-geo-location-from-just-cellidlac
На Delphi:
http://forum.netmonitor.ru/about4470-0-asc-60.html