Новый API – определение местоположения по WiFi и GSM сетям

Сегодня мы запускаем для публичного тестирования новый API-сервис  – Яндекс.Локатор. C помощью этого программного интерфейса можно определить координаты мобильного устройства или ноутбука по идентификаторам WiFi и GSM сетей, в зоне действия которых он находится. С помощью API Яндекс.Локатора можно отображать местоположение пользователя на карте,  добавлять геотэги к фотографиям и сообщениям, отправляемым в социальные сети (например, в Twitter), создавать игры и придумывать другие сервисы, основанные на географическом местоположении пользователя.

Если в телефоне пользователя нет GPS-приемника, локатор поможет определить, где пользователь находится.API будет полезен и для десктопных приложений. В большинстве настольных устройств нет GPS-приемника, поэтому определение местоположения по WiFi и IP – единственный доступный способ.

Разработчики Яндекса используют этот API во многих сервисах, например в Мобильных Яндекс.Картах, Мобильном Яндексе и в Яндекс.Баре для Firefox и Internet Explorer.

Техническая документация и примеры использования нового API доступны на странице API Яндекс.Локатор Для использования необходимо получить  уникальный ключ API Яндекс.Карт


Олег Герасимов, Григорий Бакунов, локаторы.
г. Москва, ул. Льва Толстого 16

36 комментариев
Прикольно. Будем пробовать. Спасибо!
Алексей Беляев
26 ноября 2015, 17:22
Хорошая новость, спасибо. А теперь немного позанудствую об условиях использования:
1) Обязанность не передавать полученные от пользователя данные третьим лицам не прописана случайно или умышленно или я ее просто не нашел?
2) На странице API упоминается WiMax, в тексте ПС о нем ни слова...
3) Что делать, если GPS нет?
4) В ПС вообще не описана роль, права и обязанности разработчика, а часть обязанностей пользователя на самом деле - его.
На мой взгляд, ПС сырое и мутное, и, боюсь, при желании докопаться до него значительно легче, чем до столба. И это обидно.
Григорий Бакунов
26 ноября 2015, 17:22
1. как не передавать? Сервис A передает данные о геолокации в Локатор. Сервис Б тоже передает. И оба они улучшают данные друг друга. Данные о _пользователях_ там не хранятся просто, почитайте API.
2. Он там технически равен wifi. Но спасибо, посмотрим.
3. Не передавать данные, это же логично :)
4. Яндекс пока ни до кого не "докапывался". И не планируем. Предложите улучшения.
Алексей Беляев
26 ноября 2015, 17:22
1) я имел в виду ситуацию, когда есть два конкурирующих сервиса, например таксопарка или шторопошивочных ателье, и у обоих есть приложение для сотрудников (чтобы быстрее обрабатывать заказы) и одно из них приходит в Яндекс и говорит - продай данных (ГПС треков) от второго. Где гарантия, что этого не произойдет? С моей т.з. гарантией могла бы служить клауза в тексте ПС об (А) обязательстве Яндекса использовать любые данные получаемые от Пользователя исключительно в целях функционирования данного сервиса, и (Б) обязательстве не передавать данные о позиционировании, полученные от пользователя (GPS треки) третьим лицам, за плату или безвозмездно, кроме случая обобщенных данных, не позволяющих получить данные о местоположении конкретного пользователя или группы пользователей. Но, если честно, я сомневаюсь, что Я. это введет. Давайте так - если что, Вы просто скажите НЕТ, не придумывая причин, ОК?
2) Понятно, что там просто несходанс, но как-то неаккцуратненько - либо везде отдельно его напишите, либо через запятую с ВайФаем
3) Т.е. получается, что нельзя строить приложение которое будет поллить Локатор чаще раза в 86.4 сек для устройств без GPS. (согласно п.3.5 ПС)? Или 1000 в день - это ограничение на ключ? И кстати, а можно ли передавать в качестве позиционной информации данные других сервисов местоположения, например Нокиевских или Гугловых? Или чистый православный GPS only?
3-а) Вообще термин "GPS трек", употребляемый в ПС, на мой взгляд, не самый удачный. Во-первых, там точка, а не трек, по крайней мере в примерах. Во-вторых, не закладываться на появление ГЛОНАССа как-то не инновационно :). В третьих, есть же "астролябии" третьих сторон. По мне - "информация о местоположении пользователя" или "информация о географических координатах пользователя" как-то более верно.
4) Я не про, что Яндекс докопается (это известные риски :), я про то, что до Яндекса начнут докапываться зануды вроде меня.

1. Вы даже не сомневайтесь, к нам конечно же приходят, и не такого простят, только вот доброе имя нам  несоизмеримо дороже :) 

2. Посмотрим, ага, спасибо. 

3. А много ли вы знаете приложений, разработанных специально только для устройств без GPS?  Когда одно и тоже приложение работает на устройстве с GPS - оно шлет нам треки, когда на устройстве без GPS - использует сервис. Кстати, МЯК так и работает. 1000 - это ограничение на ключ. В треках мы ждем координаты от GPS приемников.

3а. Ох, чувствую, используй мы термин "последовательность точек с GPS координатами", сейчас бы обсуждали, что  это называется "GPS-треком". Как только иновационные приборы с ГЛОНАСС приемниками появятся на рынке и  реально смогут передавать нам "ГЛОНАСС-треки" - обязательно переосмыслим терминологию.

4. Это всегда пожалуйста :)

 

Очень прикольно. Одно но:

{
  "position": {
    "latitude": 59.9154933,
    "longitude": 30.3651276,
    "altitude": 0.0,
    "precision": 100000,
    "altitude_precision": 30.0,
    "type": "ip"
  }
}

precision не впечатляет :(

IP московский, а оказались в Питере.

Григорий Бакунов
26 ноября 2015, 17:22
определение по IP всегда ОЧЕНЬ приблизительное, тут ничего не поделаешь.
Пробуйте лучше данные wifi/gsm, это гораздо интереснее.
Как пользоваться то???
Александр Новиков
26 ноября 2015, 17:22
Локатор - будет полезно.
у меня айпод тач 4, на нём яндекс карты установлены, дома вайфай, как им пользоваться?

У iOS нет общедоступного способа программно получить идентификаторы WiFi и GSM сетей (да, да в AppStore есть программы отображающие списки WiFi сетей, но они нарушают ЛС Apple, и их в любой момент могут удалить).

Поэтому, к сожалению, на iOS устройствах возможно использовать только встроенные в нее средства определения местоположения.

 

Откуда яндекс знает физическое местоположение wi-fi точек?

За счет того, что мы собираем GPS--треки от пользователей мобильных карт. Например, если мимо wifi точки доступа проедет пользователь МЯК, он вместе с треком содержащим GPS координаты передаст на сервер и идентификатор wifi точки доступа. Естественно, вся передаваемая информация обезличина.

Более того, разработчики могут самостоятельно пополнять базу координат wifi точек - API для пополнения базы так же открыто.

 

я так и думал, следите за безопасностью, пожалуйста.

 

гугл тоже собирает, смотрите к чему привело:

http://samy.pl/mapxss/

теперь можно любую точку найти по маку, что не есть хорошо.

 

 

Конечно, если мы обнаружим недобросовестные сервисы, эксплуатирующие уязвимости железа, и ходящие к нам за координатами пользователей, мы их будет нещадно банить.

 

Но к сожалению, ни мы, ни гугл не сможем предотвратитть локальные уязвимостями роутеров, отдающих любому внешнему сервису свой мак адрес :(

 

У Альтергео совсем все купили?
Или к ним за данными залезаете, как раньше? Получается апи для апи. :-)

Зачем купили :) 

Сервис определения и данные полностью от Яндекса.

С Альтергео у нас был совместный проект - определение местоположения по WiFi сетям в МЯК, в дополнение к нашему сервису определения по CellID. Попробовали с Альтергео, провели ряд экспериментов, и пришли к выводу, что все же эффективней использовать свой сервис.

 

ООО, какой кайф!!
Андрей Мавлянов
26 ноября 2015, 17:22
а вот где можно ввести координаты своей точки? ну так чтобы точно определялось? сделали бы интерфейсик для пользователей...

Такой интерфейс есть, и называется мобильные Яндекс.Карты :)

 

Андрей Мавлянов
26 ноября 2015, 17:22
понимаешь в чём дело - не всегда точно он координаты определяет. особенно если точка внутри "каменного мешка" стоит. вот например у меня дома он определяет точку как расположенную посередине проспекта.
А как точно определяется местоположение по IP WiFi точек? )

почините http://api.yandex.ru/locator/

у меня 404

Алексей Траньков
26 ноября 2015, 17:22

У вас в описании сервиса «заграницей» написано вместо «за границей», вы уж исправили бы.

Очень полезный сервис)

 

Добрый день. 

Спасибо за прекрасный сервис!

 

Единственное, он уже два дня как не работает :(

Точнее сказать работает (никаких ошибок не выдает), но при любых сочетания mcc/mnc/lac/cellid отправляет в Краснодар %) (т.е. погрешность >100000 м.) 

 

Почините, пожалуйста :)

Я так понимаю эта херня используется в мобильном яндексе?




Подскажите пожалуйста, как её отключить?

Какое-то сумашедшее геотаргетирование, искренне сочувствую борцам заправа человека, которые агитируют за недопущение вмещательства в личную жизнь, в том числе на право скрывать свое местоположение, но ТЕхнологии берут свое и уже не спрашивают у нас своего разрешения на вмешательство, они идут впереди нас на один шаг. Например, недавно был с частным визитом в Чугуеве Харьковской области, и там был выявлен друзьями по соему локатору.  Так вот спалился, ничего не подозревая отом,что замной следят друзьяпо геолокатору.

Ответ, конечно, запоздалый, но таки подскажите, как заставить сервис не определять местоположение по IP, не указывая корректные wifi_networks, ip.

Вот такой запрос http://paste.kde.org/666344/ выдаёт такой ответ http://paste.kde.org/666350/ . gsm_cells взято из телефона, wifi_networks и ip убрано.

Может проблема в lac?

Здравствуйте, у меня ipod touch. Еду в автобусе, точки wifi  вижу. но не подключен ни к одной из них. Как Яндекс карты определяют мое местоположение, если информация то не передается до вашего сервиса online. Или часть информации c координатами хранится локально?

Трофименко Александр
26 ноября 2015, 17:22

правильно ли я понимаю?

Если я хочу отследить в реальном времени местоположение своего курьера, я должен:

1) на его телефоне иметь работающее приложение, регулярно определяющее параметры для запроса

2) Этот телефон должен периодически отправлять эти данные мне в скрипт в формате:

 }, "gsm_cells": [ { "countrycode": 250, "operatorid": 99, "cellid": 42332, "lac": 36002, "signal_strength": -80, "age": 5555 } ], "wifi_networks": [ { "mac": "00-1C-F0-E4-BB-F5", "signal_strength": -88, "age": 0, } ], "ip": { "address_v4": "178.247.233.32" }

3) А скрипт в свою очередь формировать запрос и отсылать его на http://api.lbs.yandex.net/geolocation

Я вас умоляю, сделайте вывод названия города и региона и страны еще, где долгота и широта (просто у людей своя база текстовая городов и регионов) если это конечно допустимо в рамках лицензий и всего остального. Спасибо!
А чего так сложно то, намудрили так намудрили....простому смертному этот сервис не по зубам.
www.it-air.ru ит-аутсорсинг
26 ноября 2015, 17:22
А мне вот интересно, нет ли у Я полноценного сервиса, который бы позволял найти своё устройство на Я.картах в режиме онлайн?
По сути, прямая альтернатива сервису google "Найти устройство", только от отечественного, родного производителя?


А то реально с завидной периодичностью у гугл этот сервис глючит, в таких ситуациях можно было бы воспользоваться альтернативным от Я. Или наоборот, Я - основной, G - резервный.


И кстати, я бы не отказывался полностью от использования датчика GPS, уж коль он есть в устройстве, и тоже использовал бы для определение координат устройства. Другое дело, если его нет, он отключен или не выдает положительных результатов (условия местности), то конечно задействовать остальные способы.
Обновлено 20 июня 2018, 14:08