单击小册子中的缩放和中心标记

时间:2014-07-02 09:40:56

标签: jquery leaflet marker

我的传单地图有问题。我的地图上有一些标记,当点击一个标记时,标记居中。现在我想点击一个标记时它不仅居中,而且我想放大标记。当我添加这个

    map.setZoom((16), {animate: true});

    map.on('popupopen', function(centerMarker) {
        var cM = map.project(centerMarker.popup._latlng);
        cM.y -= centerMarker.popup._container.clientHeight/2
        map.setZoom((16), {animate: true});
        map.panTo(map.unproject(cM),{animate: true});
    });

我的代码中心并不真正起作用,因为它放大但不会使标记居中。但是如果我处于预期的缩放级别(16),所有其他标记都会居中。如果我在缩放级别16之外,我该怎么做才能将地图缩放到标记并且标记也​​会居中?我对传单和jquery都很陌生......

2 个答案:

答案 0 :(得分:9)

您可以使用单一方法setZoom进行缩放操作,而不是使用panTosetView

map.on('popupopen', function(centerMarker) {
        var cM = map.project(centerMarker.popup._latlng);
        cM.y -= centerMarker.popup._container.clientHeight/2
        map.setView(map.unproject(cM),16, {animate: true});
    });

答案 1 :(得分:0)

我将屏幕上的图标弹出窗口居中的方式是通过缩放来指定clientHeight并使弹出窗口居中:

mymap.on('popupopen', function(centerMarker) {
  const zoomLvl = 13;
  let cM = mymap.project(centerMarker.popup._latlng);

  cM.y -= centerMarker.popup._container.clientHeight / zoomLvl
  console.log(mymap.unproject(cM));
  mymap.setView(mymap.unproject(cM), zoomLvl, {animate: true});
});