Клуб API Карт

geolocation.get - очень не точно определяет местоположение пользователя

dyaga787
30 января 2017, 06:38

Здравствуйте. Помогите разобраться.

нужно чтобы карта сама определяля где находится пользователь

пытаюсь сделать по примеру из песочницы
api подлкючая так:

<script src="https://api-maps.yandex.ru/2.1/?lang=ru-RU" type="text/javascript"></script>

песочница:
https://tech.yandex.ru/maps/jsbox/2.1/geolocated_map

разрешения почему-то не спрашивает.
определяет криво и через раз.
то куда-то на окраину города кидает, то вообще в сотни километров по области в какое-то село...

geolocation.get({autoReverseGeocode: false})

а если отключить эту опцию то вообще 0, карта не появляется


код почти идентичный с песочницей:

ymaps.ready(function () {
    var map;
    ymaps.geolocation.get().then(function (res) {
        var mapContainer = $('#YMapsID'),
            bounds = res.geoObjects.get(0).properties.get('boundedBy'),
            // Рассчитываем видимую область для текущей положения пользователя.
            mapState = ymaps.util.bounds.getCenterAndZoom(
                bounds,
                [mapContainer.width(), mapContainer.height()]
            );
        createMap(mapState);
    }, function (e) {
        // Если местоположение невозможно получить, то просто создаем карту.
        createMap({
            center: [55.75430534594861, 37.621094692065874],
            zoom: 13
        });
    });
    
    function createMap (state) {
    	console.log(state);
        map = new ymaps.Map('YMapsID', state);
    }
});


если ставлю:

geolocation.get({provider: 'browser'})

то просто загружает указанные дефолтные значения

2 комментария
Вероятнее всего у вас http-домен, для которых гугл запретил точное определение местоположения средствами браузера.
Некоторые другие браузеры еще дают доступ к этой функциональности, но, скорее всего, в будущем тоже перейдут на https-only.
ymapsapi,
спасибо за ответ.
домен действительно http