【问题标题】:Iterate a Leaflet marker cluster group and update the titles of the markers迭代 Leaflet 标记簇组并更新标记的标题
【发布时间】:2021-03-30 19:55:50
【问题描述】:
       Self.companyMarkersClusterGroup.eachLayer(function(layer){
            const companyData = layer.options.companyData;

            layer.title = GetCompanyMapMarkerTitle(companyData);  
          });

我正在尝试遍历 Leaflet marker cluster group 中的所有标记并更新它们的标题。

上面的代码似乎不起作用。我做错了什么?

可能是内部循环变量layer 是标记的本地深层副本,因此更新它不会更新标记?如果是这样,我该如何更新标记?

【问题讨论】:

    标签: leaflet markerclusterer


    【解决方案1】:

    如果“标题”是指当你像这样实例化标记时出现的标记图标上的本机工具提示/title option

    L.marker(latLng, {
      title: "marker icon native tooltip"
    });
    

    ...那么您需要更新标记 options 标题,并调整其当前图标标题(如果有)以立即更新它(以防图标当前显示在地图上):

    const newTitle = "new title content";
    layer.options.title = newTitle;
    const icon = layer.getElement();
    if (icon) {
      icon.title = newTitle;
    }
    

    请注意,如果当前显示的是本机工具提示(即,如果用户鼠标当前悬停在图标上),则浏览器可能不会在内容消失并再次出现之前更新内容。

    【讨论】:

    • 谢谢!几点。我没有初始化标题,因为它总是会在以后设置。 WRT 你的笔记,我建议使用 `L.DomEvent.on(button, 'mouseover', this._mouseover, this);` 并定义mouseover : function ()
    • 另外,icon 对我的标记来说从来都不是真的。没关系;这段代码有效,但我只是想为未来的读者指出它。再次感谢:-)
    猜你喜欢
    • 2012-01-04
    • 1970-01-01
    • 2012-06-27
    • 2012-10-23
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多