Вопрос по javascript – Как найти пользователя с помощью листовки?

9

Я пытаюсь найти пользователя и установить карту на эту позицию с помощью листовки:

    <script>
    var map;

    function initMap(){
        map = new L.Map('map',{zoomControl : false});
        var osmUrl = 'http://{s}.tile.openstreetmap.org/mapnik_tiles/{z}/{x}/{y}.png',
            osmAttribution = 'Map data &copy; 2012 OpenStreetMap contributors',
            osm = new L.TileLayer(osmUrl, {maxZoom: 18, attribution: osmAttribution});
        map.setView(new L.LatLng(51.930156,7.189230), 7).addLayer(osm);
    }

    function locateUser(){
        map.locate({setView : true});
    }
</script>

При запуске браузера запрашивать разрешение, но тогда ничего не происходит? Что не так с моим кодом?

Не могли бы вы вставить весь код? Вы включили все необходимые файлы листовок? Как вы определяете позицию пользователя? Ваши функции выполняются? Evgeni Reznik
Еще один момент, который стоит отметить, - функция поиска листовок работает только на веб-сайтах https. Taffman
Мы не знаем, что такое листовка или что-то о том, что вы делаете. Эта строка кода звучит хорошо, но вам действительно нужно дать нам немного больше. Возможно, ссылка на ваш код, а также информация о том, что вы уже пробовали. Кроме того, зайдите и примите несколько ответов - у вас есть вопросы 9 месяцев назад, на которые вы не приняли ответ! Rich Bradshaw
Я отредактировал весь источник в своем первом посте. Листовка - это карта lib. Подробности здесь:leaflet.cloudmade.com fillibuster

Ваш Ответ

2   ответа
8

естил пример, который исправляет ваш код здесь:http://jsfiddle.net/XwbsU/3/

Вы должны получить всплывающее окно геолокации в браузере, когда нажмете "Найти меня!".

Надеюсь, это поможет вам.

9

https://github.com/domoritz/leaflet-locatecontrol

var loadMap = function (id) {
    var HELSINKI = [60.1708, 24.9375];
    var map = L.map(id);
    var tile_url = 'http://{s}.tile.osm.org/{z}/{x}/{y}.png';
    var layer = L.tileLayer(tile_url, {
        attribution: 'OSM'
    });
    map.addLayer(layer);
    map.setView(HELSINKI, 19);

    map.locate({setView: true, watch: true}) /* This will return map so you can do chaining */
        .on('locationfound', function(e){
            var marker = L.marker([e.latitude, e.longitude]).bindPopup('Your are here :)');
            var circle = L.circle([e.latitude, e.longitude], e.accuracy/2, {
                weight: 1,
                color: 'blue',
                fillColor: '#cacaca',
                fillOpacity: 0.2
            });
            map.addLayer(marker);
            map.addLayer(circle);
        })
       .on('locationerror', function(e){
            console.log(e);
            alert("Location access denied.");
        });
};

loadMap('map');
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededleafletjs.com/reference.html#map-locate-optionsError: User Rate Limit Exceeded

Похожие вопросы