Документация
Справочник JavaScript API
2.1.64 (текущая версия)
collection
interactivityModel
Интерфейсы

Определение местоположения пользователя

В API включена возможность определения местоположения пользователя (геолокация). Для работы с геолокацией используется статический объект geolocation. Доступно три режима определения местоположения пользователя:

  • по ip-адресу по данным Яндекса (как правило, этот метод имеет точность до города или региона);
  • с использованием Geolocation API (этот метод точнее на мобильных устройствах, но пользователь должен явно разрешить веб-странице получить сведения о его местоположении);
  • вызов обоих методов с выбором более точного результата.

Выбор метода геолокации осуществляется путём указания опции 'provider' - перечисленным методам соответствуют значения 'yandex', 'browser' и 'auto' соответственно. По умолчанию используется метод 'auto'

Результаты геолокации будут возвращены в том же виде, что и результаты геокодирования — коллекция геообъектов с единственной меткой, соответствующей местоположению пользователя. По умолчанию координаты пользователя автоматически подвергаются обратному геокодированию, т.е. автоматически определяется адрес, город и регион пользователя (это поведение можно отключить, задав опции 'autoReverseGeocode' значение false).

// Пример определения региона пользователя
// и создания карты, показывающей этот регион
ymaps.geolocation.get().then(function (res) {
        // Предполагается, что на странице подключен jQuery
    var $container = $('YMapsID'),
        bounds = res.geoObjects.get(0).properties.get('boundedBy'),
        mapState = ymaps.util.bounds.getCenterAndZoom(
            bounds,
            [$container.width(), $container.height()]
        ),
        map = new ymaps.Map('YMapsID', mapState);
}, function (e) {
    console.log(e);
});