Возможно ли получить (грубое) местоположение мобильного телефона из HTTP-запроса - PullRequest
7 голосов
/ 07 января 2010

Если память мне не изменяет, это делает Google для сайта карт. Я знаю, что приложение google для мобильных карт может определить приблизительное местоположение (я полагаю, что он использует поиск сотовой вышки), но я помню, что при просмотре в мобильном браузере сайт несколько приблизился к текущему местоположению.

Кто-нибудь знает, как / если это возможно? Меняется ли IP-адрес в зависимости от вышки или области (кажется, что они используют какой-то шлюз, общий для оператора)?

Ответы [ 5 ]

2 голосов
/ 23 января 2010

При обычном HTTP-запросе у вас есть только опция GeoIP, но это только улучшит страну и оператора.

В зависимости от приложения и устройства, которые вы используете, для геолокации существуют различные варианты, например, браузеры iPhone и Android поддерживают функции гео-JavaScript-кода HTML5, чтобы вы могли поместить на страницу некоторый код, чтобы отправить вам местоположение. Однако все они включают некоторый код на стороне клиента.

Другой вариант предполагает заключение сделки с сетями, они могут предоставить вам номер телефона в качестве дополнительного заголовка в запросе, а затем вы можете запросить этот номер с помощью API у оператора, чтобы узнать местоположение телефона из сеть. Однако за эту функцию они берут довольно копейки, а точность может варьироваться от 100 м в городских условиях до 35 км в очень сельских районах.

2 голосов
/ 07 января 2010

Это невозможно.

1.) Местоположение путем запроса сведений о сети.

Даже если вы получите приблизительное местоположение из установленного приложения, запросив данные сети или идентификатор ячейки, оно не будет таким надежным. Вы не сможете выполнить что-либо на основе этого приблизительного местоположения.

2.) Расположение По запросу IP.

Во-вторых, в одной стране один оператор будет использовать геостанционные шлюзы GPRS или EDGE, и все устройства в сети будут подключены к Интернету через этот шлюз. Таким образом, вы не можете полагаться на сведения о местоположении по IP-адресу, поскольку это будет IP-адрес шлюза, а не IP-адрес устройства (в случае EDGE).

В конечном счете, если вам нужно сделать что-либо, основанное на местоположении, само местоположение должно быть точным и не приблизительным.

1 голос
/ 13 апреля 2010

Немного поздно, но другой вариант, не упомянутый, - поиск по гео IP MaxMind. Введите IP-адрес, и он предоставит вам местоположение. Существует бесплатный сервис (с простым API), который обеспечивает точность на уровне города. Существует также более точная база данных, доступная за плату. Во время тестирования я заметил, что в городских районах есть несколько вышек / IP-адресов, и база данных MaxMind знает об этом. Вы получите местоположение, а также оператор связи.

http://www.maxmind.com/

1 голос
/ 05 апреля 2010

У вас есть документация Google API по этому вопросу:

http://code.google.com/apis/gears/geolocation_network_protocol.html

Надеюсь, это поможет ...

1 голос
/ 05 апреля 2010

Некоторое время мы использовали Google Gears, и это работало на устройствах с Windows Mobile версии 5.0 и выше. Google недавно остановил этот сервис. Yahoo теперь начал что-то под названием Yahoo Fire Eagle. Звучит хорошо, еще не проверил. У меня еще нет учетной записи Yahoo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...