Markercluster в Mapbox

Я следую за примерами markercluster из библиотеки Mapbox, но не могу решить мою проблему. Если вы, ребята, посмотрите на мой рабочий пример, вы заметите следующую строку кода:

L.mapbox.featureLayer(markerLayer).on('ready', function(e) {

Первоначально я подумал, что могу поместить маркеры в markercluster featureLayer, но, думаю, это был неправильный подход. Какие-либо решения? Благодарю.

Пример следующий здесь

1 ответ

Решение

Пример mapbox, на который вы ссылаетесь, вызывает AJAX для извлечения данных GeoJSON, поэтому ему необходимо подключить прослушиватель "готов".

В вашем случае ваши данные GeoJSON определены в ваших скриптах, поэтому событие "ready" не будет запущено (кроме того, вы должны использовать L.mapbox.featureLayer непосредственно с вашим объектом GeoJSON, а не с слоем объектов).

Вы можете просто использовать eachLayer метод для перебора всех созданных маркеров в слое объектов и добавления их в группу кластеров маркеров.

var clusterGroup = new L.MarkerClusterGroup();

var markerLayer = L.mapbox.featureLayer(markers).eachLayer(function(layer) {
  clusterGroup.addLayer(layer);
});

map.addLayer(clusterGroup);

Обновленный Plunker: http://plnkr.co/edit/fN6xYcn1Lg532eLe39IS?p=preview

Другие вопросы по тегам