宣传单:平移,居中,缩放地图到标记位置

med*_*uru 0 zoom pan leaflet

我是Leaflet的新手,到目前为止玩得很开心.我有一个交互式地图,在世界各地有170个左右的标记.每个标记在弹出窗口中都有一个标题.我还想在弹出窗口中添加一个"缩放到"链接.当用户点击缩放到时,我希望地图以标记为中心并放大到某个缩放级别(见图)放大到

标记在PHP中生成为带有标题和纬度/长度的标记数组,并注入到名为"items"的javascript var中.

    for (var i = 0; i < items.length; i++) {
        marker = new L.marker([items[i][1],items[i][2]])
            .bindPopup(items[i][0])
            .addTo(map);
    }
Run Code Online (Sandbox Code Playgroud)

YaF*_*red 5

  1. 将标记保存在关联数组中(索引必须是唯一的).
  2. 在您的弹出文本中放置一个链接以调用将此索引作为参数传递的函数.
  3. 在你的javascript函数中使用panToflyTo

这是一些伪代码:

var markersById = {};   

for (var i = 0; i < items.length; i++) {
  marker = new L.marker([items[i][1],items[i][2]])
      .bindPopup('<a href="javascript:centerMapOnPost(' + i + ')">Center on map</a>')
      .addTo(map);

  markersById[i] = marker;
}


function centerMapOnPost(markerId) {
    map.panTo(markersById[markerId].getLatLng());
}
Run Code Online (Sandbox Code Playgroud)

您可以查看http://www.franceimage.com以了解我如何使用它(单击标记然后单击弹出窗口中的圆圈图标)