Javascript 在markercluster组中使用传单实时层
我结合使用和插件来显示标记,这些标记可以在地图上实时更新。 这些插件彼此独立工作,但当我想使用markercluster特性对实时层进行集群时,问题就出现了 实时层的代码示例,其中我将json转换为标记,并指定一个自定义图标并应用一些onEachFeature函数: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
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对象分组选项,您可以随心所欲: