将标记居中于div的中心

时间:2019-06-28 05:34:09

标签: leaflet maps mapbox openstreetmap

我有一个用于保存传单地图的div。当前看起来像这样

enter image description here

我希望标记位于div的中心或中心附近,以便即使标记在任何方向上都不再可见或看不见,也始终可以看到它。

当前我的代码如下

var mymap = L.map('mapid').setView([51.505, -0.09], 18);


    L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
        maxZoom: 50,
        attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, ' +
            '<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
            'Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
        id: 'mapbox.streets'
    }).addTo(mymap);

    L.marker([52.573921, -0.250830]).addTo(mymap)
    .bindPopup('A pretty CSS3 popup. <br> Easily customizable.')
    .openPopup();

    mymap.fitBounds([52.573921, -0.250830]);
    mymap.setView([52.573921, -0.250830]);
    mymap.setZoom(18);

我得到的错误范围无效。

我希望我的标记至少在这里

enter image description here

2 个答案:

答案 0 :(得分:2)

尝试一下,

mymap.panTo(new L.LatLng(52.573921, -0.250830));

答案 1 :(得分:1)

发生错误的原因是fitBounds()L.latLngBounds作为其自变量,并且您要向其传递单个L.point

您需要将地图平移到所需中心位置的另一种方法-如果要平移/缩放动画,可以使用map.panTo()map.flyTo()