我正在尝试使用标记聚类,因为当前有2000多个标记被映射,但是我不确定如何用加载标记的方式来实现它。我必须使用GeoJSON才能使用标记聚类吗?如果可能的话,我宁愿不使用GeoJSON,此刻我正在使用JSON文件,并遍历Firebase上存储的数据。如果可能的话,我想使用supercluster库(https://github.com/mapbox/supercluster),但是我不确定要加载到index.load(points)中的内容。可以按目前的代码进行聚类吗?
var markers = [];
allMarkers();
function allMarkers() {
for (var i = 0; i < data.length; i++) {
var marker = document.createElement("div");
marker.classname = "marker";
marker.style.backgroundImage = "url(./icons/all.png)";
marker.style.backgroundSize = "100%";
marker.style.backgroundRepeat = "no-repeat";
marker.style.width = "25px";
marker.style.height = "25px";
marker.style.filter = "drop-shadow(0px 5px 6px #000000)";
new mapboxgl.Marker(marker)
.setLngLat([data[i].Long,data[i].Lat])
.setPopup(
new mapboxgl.Popup()
.setHTML(
""
).on("close",function() {
}).on("open",function() {
zoom = map.getzoom();
if (zoom < 17) {
map.flyTo({
center: [this._lngLat.lng,this._lngLat.lat],zoom: 17
});
} else {
map.flyTo({
center: [this._lngLat.lng,this._lngLat.lat]
});
}
}).setMaxWidth("400px")
)
.addTo(map);
markers.push(marker);
}
}