Javascript 在markercluster组中使用传单实时层

Javascript 在markercluster组中使用传单实时层,javascript,leaflet,markerclusterer,leaflet.markercluster,Javascript,Leaflet,Markerclusterer,Leaflet.markercluster,我结合使用和插件来显示标记,这些标记可以在地图上实时更新。 这些插件彼此独立工作,但当我想使用markercluster特性对实时层进行集群时,问题就出现了 实时层的代码示例,其中我将json转换为标记,并指定一个自定义图标并应用一些onEachFeature函数: realtimeLayer = L.realtime({ url: 'someURL', crossOrigin: true, type: 'json' }, { interval: 3 * 1000

我结合使用和插件来显示标记,这些标记可以在地图上实时更新。 这些插件彼此独立工作,但当我想使用markercluster特性对实时层进行集群时,问题就出现了

实时层的代码示例,其中我将json转换为标记,并指定一个自定义图标并应用一些onEachFeature函数:

realtimeLayer = L.realtime({
    url: 'someURL',
    crossOrigin: true,
    type: 'json'
}, {
    interval: 3 * 1000,
    onEachFeature: onEachFeature,
    pointToLayer: function(feature, latlng) {
        return L.marker(latlng, {
            icon: customIcon
        });
    }
});
对于非实时标记层,我能做的是创建一个markercluster组,并将该层添加到该组中,以便标记按如下方式聚集:

var clusterGroup = L.markerClusterGroup();
clusterGroup.addLayer(someLayer);

但是,当我将realtimeLayer添加到clustergroup时,不会应用集群,或者根本不会加载标记do net。我错过了什么?谢谢

您需要将
容器
选项添加到实时对象选项中

从官方传单实时文档:

L.Realtime还可以使用其他图层类型来显示结果,例如 示例它可以使用传单MarkerCluster中的MarkerClusterGroup: 传递LayerGroup(或实现addLayer和 removeLayer)到L.Realtime的容器选项。(此功能已添加 在版本2.1.0中。)

因此,在初始化集群组并将其添加到映射后:

var clusterGroup = L.markerClusterGroup();
clusterGroup.addTo(map);
然后,可以在容器选项中将clusterGroup对象传递给实时对象:

realtimeLayer = L.realtime({
    url: 'someURL',
    crossOrigin: true,
    type: 'json'
}, {
    container: clusterGroup
    interval: 3 * 1000,
    onEachFeature: onEachFeature,
    pointToLayer: function(feature, latlng) {
        return L.marker(latlng, {
            icon: customIcon
        });
    }
});
现在,当您将realtime对象添加到地图时,它应该正确聚集:

realtimeLayer.addTo(map)
官方传单Real Time repo提供了一个示例,通过添加多个L.Realtime对象分组选项,您可以随心所欲: