Javascript 将地图居中于地图上的点上

Javascript 将地图居中于地图上的点上,javascript,html,Javascript,Html,我对开放式街道地图有点小问题。 我有以下代码: function onLocationFound(e) { var radius = e.accuracy / 2; lat = e.latlng.lat; lng = e.latlng.lng; L.marker(e.latlng).addTo(map).bindPopup("Tutaj jesteś!!!"); //L.ci

我对开放式街道地图有点小问题。 我有以下代码:

function onLocationFound(e) {
            var radius = e.accuracy / 2;
            lat = e.latlng.lat;
            lng = e.latlng.lng;

            L.marker(e.latlng).addTo(map).bindPopup("Tutaj jesteś!!!");
            //L.circle(e.latlng, radius).addTo(map);


        }

        function onLocationError(e) {
            //alert(e.message);
            console.log(e.message);
        }


        var map = L.map('mapdiv', {
            editable: true,
            fadeAnimation: false
        }).setView([54.35070881441067, 18.641191756395074], 15);
        L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
        // L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
            attribution: '&copy; <a href="https://osm.org/copyright">OpenStreetMap</a> contributors',
            maxZoom: 16, zoomControl: true, detectRetina: true
        }).addTo(map);


        map.on('locationfound', onLocationFound);
        map.on('locationerror', onLocationError);
        map.locate({setView: true, maxZoom: 16});


        let myFilter = ['grayscale:100%'];

        let myTileLayer = L.tileLayer.colorFilter('https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png', {
            attribution: '<a href="https://wikimediafoundation.org/wiki/Maps_Terms_of_Use">Wikimedia</a>',
            filter: myFilter,
        }).addTo(map);




        var LeafIcon = L.Icon.extend({
            options: {
                iconSize: [25, 29],
                iconAnchor: [25, 29],
                popupAnchor: [-12, -22]
            }
        });


        L.icon = function (options) {
            return new L.Icon(options);
        };


        var icons = {
            greenIcon: new LeafIcon({iconUrl: '{{asset('assets/images/ikon19.png')}}'}),
            redIcon: new LeafIcon({iconUrl: '{{asset('assets/images/ikon20.png')}}'}),
            blackIcon: new LeafIcon({iconUrl: '{{asset('assets/images/ikon20.png')}}'})
        }


        var image = '';
        $.ajax({
            url: '{{url('/getPointForMap')}}',
            method: 'get',
            cache: false,
            success: function (data) {
                $.each(JSON.parse(data), function(i, poi) {
                    if (poi.photo != ''){
                        image = '<img src="'+poi.photo+'" class="mapImgF"><br/>';
                    }
                    L.marker([poi.lat, poi.lng], {icon: icons[poi.marker]}).addTo(map).addTo(map).bindPopup('<a href="'+poi.url+'">' + image + '<div class="mapTitleF">' + poi.name + '</div>' + '<div class="mapDescF"> ocena: ' + poi.score + '<br/>' + poi.price + ' </div></a>', {maxWidth: "auto", closeOnClick: true});
                });
            }
        });

<div id="mapdiv"></div>
函数onLocationFound(e){
var半径=e.精度/2;
lat=e.latlng.lat;
液化天然气=e.latlng.lng;
L.marker(e.latlng).addTo(map).bindpoop(“Tutaj jesteś!!!”);
//L.圆(e.板条,半径)。添加到(地图);
}
函数onLocationError(e){
//警报(e.message);
控制台日志(e.message);
}
var map=L.map('mapdiv'{
是的,
fadeAnimation:错误
}).setView([54.35070881441067,18.641191756395074],15);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'{
//L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png'{
属性:“©;参与者”,
maxZoom:16,zoomControl:true,DetectRetentina:true
}).addTo(地图);
地图上('locationfound',onLocationFound);
map.on('locationerror',onLocationError);
locate({setView:true,maxZoom:16});
让myFilter=['灰度:100%'];
让myTileLayer=L.tileLayer.colorFilter('https://maps.wikimedia.org/osm-intl/{z} /{x}/{y}.png'{
归属:'',
过滤器:myFilter,
}).addTo(地图);
var LeafIcon=L.Icon.extend({
选项:{
iconSize:[25,29],
iconAnchor:[25,29],
popupAnchor:[-12,-22]
}
});
L.icon=功能(选项){
返回新的L.图标(选项);
};
变量图标={
绿色图标:新的叶子图标({iconUrl:'{{asset('assets/images/ikon19.png')}}),
redIcon:new-LeafIcon({iconUrl:'{{asset('assets/images/ikon20.png')}}),
blackIcon:new LeafIcon({iconUrl:'{{asset('assets/images/ikon20.png')}}})
}
var图像=“”;
$.ajax({
url:“{url('/getPointForMap')}}”,
方法:“get”,
cache:false,
成功:功能(数据){
$.each(JSON.parse(数据)、函数(i、poi){
如果(poi.photo!=''){
图像=“
”; } L.marker([poi.lat,poi.lng],{icon:icons[poi.marker]}).addTo(map).addTo(map).bindpoop('',{maxWidth:“auto”,closeOnClick:true}); }); } });
地图通常工作正常,下载并显示点

我的问题是缩放设置。启动地图后,会要求用户获得定位权限。但是,在同意加载地图后,会设置地图缩放的最大缩放。我希望缩放尽可能低,以便用户所在的地图上有一个可见的片段


怎么做?

我相信解决问题的关键是这一行:
map.locate({setView:true,maxZoom:16});

此处的
maxZoom
参数确定显示用户位置时应自动设置的最大缩放比例(这并不意味着这是用户可以在地图上使用的最大缩放比例,它仅指自动视图设置)。因此,如果将其更改为
map.locate({setView:true,maxZoom:8})
你应该看到区别


如果您想更深入地了解它,这里有相应的文档:

我相信解决问题的关键是这一行:
map.locate({setView:true,maxZoom:16});

此处的
maxZoom
参数确定显示用户位置时应自动设置的最大缩放比例(这并不意味着这是用户可以在地图上使用的最大缩放比例,它仅指自动视图设置)。因此,如果将其更改为
map.locate({setView:true,maxZoom:8})
你应该看到区别


如果您想更深入地了解它,这里有相应的文档:

Thx-这是有帮助的,但现在我在这里解决了这个问题:(灰色背景)我不确定这是否有帮助,但您可以尝试在找到用户之前更改默认的缩放:
.setView([54.35070881441067,18.641191756395074],15)
尝试将
15
更改为与您在
定位
功能中使用的相同缩放级别。这没有帮助:(Thx-这是帮助,但现在我在这里解决了这个问题:(灰色背景)我不确定这是否有帮助,但您可以尝试在定位用户之前更改默认的缩放:
.setView([54.35070881061447,18.641191756395074],15);
尝试将
15
更改为您在
locate
功能中使用的相同缩放级别。这没有帮助:(