【问题标题】:Leaflet: Pan, center, zoom map to marker location传单:平移、居中、缩放地图到标记位置
【发布时间】:2017-08-18 21:01:07
【问题描述】:

我是 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);
    }

【问题讨论】:

  • 我在你的图片上点击了“点击放大”哈哈

标签: leaflet zooming pan


【解决方案1】:
  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());
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-15
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多