Клуб API Карт

Вопрос по geolocation

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

В нем нет возможности делать запрос  к gps устройства? только определение по ip?

9 комментариев
Владислав Турман
27 января 2016, 23:57

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

Я тоже так думал, но почему то браузер не спрашивает,  provider: 'auto'

а что у вас за браузер?

chrome для андроида

А вы можете попробовать принудительно использовать браузерную геолокацию и посмотреть, будет ли ошибка?

geolocation.get({

        provider: 'browser',

        mapStateAutoApply: true

    }).then(function (result) {

        // Синим цветом пометим положение, полученное через браузер.

        // Если браузер не поддерживает эту функциональность, метка не будет добавлена на карту.

        result.geoObjects.options.set('preset', 'islands#blueCircleIcon');

        myMap.geoObjects.add(result.geoObjects);

    }, function (err) {alert('Ошибка!');};

да, вывавливает ошибку, причем с очень большой задержкой(в мобильном хроме) , на десктопе хром вроде работает(результат анологичен auto), вот код теста:

var map = new ymaps.Map("shops",{

            center: [47.228541,39.718139],

            zoom: 14,

            type: "yandex#map",

            controls: ['zoomControl', 'fullscreenControl','rulerControl']

        });

        

        var setMyPositionPlacemark = function() {

 

              ymaps.geolocation.get({

  

                  provider: 'browser',

          

                  mapStateAutoApply: true

          

              }).then(function (result) {

          

                  // Синим цветом пометим положение, полученное через браузер.

          

                  // Если браузер не поддерживает эту функциональность, метка не будет добавлена на карту.

          

                  result.geoObjects.options.set('preset', 'islands#blueCircleIcon');

          

                  map.geoObjects.add(result.geoObjects);

          

              }, function (err) {

                  alert('Ошибка!');

              }

            

            );

        }

        

        var myPosition = new ymaps.control.Button({

        data: {

            image: '/yamap/target.png',

            title: 'Нажмите для установки маркера своего положения'

        },

        options: {

            selectOnClick: false,

            maxWidth: [30, 100, 150]

        }});

        

        myPosition.events.add('click', setMyPositionPlacemark );

        

        map.controls.add(myPosition, { float: 'left'});;


P.s. api 2.1

какая ошибка то?

function (err) {

    // alert('Ошибка!');

    console.log(err);

}

да, вы правы, что-то я затупил, ошибка - Error:timed out

покопался в проблеме судя по всему беда не в Я-картах, а в андроиде 4.4.2 и браузере хром для онного