Клуб API Карт

Не срабатывает ymaps.geolocation

Пост в архиве.

Не могу воспользоваться ymaps.geolocation - отдает undefined.
Мне надо получить yamps.geolocation.city

Саму инициализацию карты и прочие построения делаю как в официальных примерах

9 комментариев
v.trakhtenberg@terao.by
27 января 2016, 22:27

Вот, собственно, тестовый файл, на котором все это делается - http://webdev.tvysoftware.com/ymaps/ex4.html

Задача:
На карте есть статическая точка (она около Минска), в балуне которой ссылка "Как проехать". Стоит задача, чтобы форма задания стартовой точки уже изначально заполнялась адресом пользователя, а он мог бы его подправить.

Sergey Konstantinov
27 января 2016, 22:27
Возможно, вам стоит почитать документацию.
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/geolocation-docpage/
v.trakhtenberg@terao.by
27 января 2016, 22:27

И читал, и экспериментировал... не стал бы отвлекать почтенное сообщество без причины :(

 

По веткам обсуждения в клубе пробую формат

ymaps.geolocation.get({
    // Выставляем опцию для определения положения по ip
    provider: 'yandex',
    // Автоматически геокодируем полученный результат.
    autoReverseGeocode: true
}).then(function (result) {
    // Выведем в консоль данные, полученные в результате геокодирования объекта.
    console.log(result.geoObjects.get(0).properties.get('metaDataProperty').getAll());
},

но консольный вывод ничего не показывает. И диагностика ошибки тоже ничего не показывает.

То есть точка остановки даже срабатывает на операторе console.log - но log остается пустым.

 

P.S. Вышеуказанная ссылка ex4 обновлена - на тестовом сервере находится актуальный на данный момент вариант кода.

 console.log(result.geoObjects.get(0).properties.get('metaDataProperty'));

Метод getAll есть только у поля properties

У объекта метадатапроперти его понятное дело нет 

v.trakhtenberg@terao.by
27 января 2016, 22:27

(B)Спасибо, dimik, twirl-team! 

А в примере 2 на https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/geolocation-docpage/ метод getAll() указан был, мы-то начали эксперимент с точного копирования.

Спасибо, документацию поправим

Щепин Илья
27 января 2016, 22:27

поправьте пожалуйста, долго понять не мог в чем дело, в итоге через 2 часа нашел ваш комментарий.. ))

Подскажите есть функция


geolocation.get({
provider: 'browser',
mapStateAutoApply: true,
timeout: 15000
}).then(function (result) {
console.log('что-то произошло')
result.geoObjects.options.set('preset', 'islands#redCircleIcon');
myMap.geoObjects.add(result.geoObjects);
});


Подскажите а как мне отследить событие если пользователь например ничего не нажал, сработал timeout или нажал не показывать местоположение.


Мой console.log тогда не срабатывает(
Срабатывает если только пользователь нажал кнопку предоставить местоположение.
Всеволод Шмыров
19 марта 2017, 22:34
motoroller198311,
geolocation.get возвращает объект-promise. Достаточно передать второй аргумент в then. Подробнее https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/vow.Promise-docpage/