Увеличение масштаба одного кластера точек с помощью OpenLayers

#openlayers

#openlayers

Вопрос:

У меня есть много точек, отображаемых в виде кластера ol.source.Cluster . Мне нужно увеличить масштаб одного расширения кластера, и я пытаюсь сделать это, используя приведенный ниже код:

 map.on('singleclick', event => {
 extent = feature.getGeometry().getExtent();
 options = {
   size: map.getSize(),
   padding: [50, 50, 50, 50],
   duration: 1000
 }
 map.getView().fit(extent, options);
})
 

Когда точка не кластеризована, и я нажимаю на нее, я могу правильно видеть ее в центре карты, а масштабная линия перемещается с 2000 км на 50 мм; но когда у меня есть кластер точек, когда я нажимаю на кластер, я вижу, что масштабная линия перемещается с 2000 км на 50 мм, и я вижу, что масштабная линия перемещается с 2000 км на 50 мм, и яневозможно увидеть точки.

Как я могу это решить?

Ответ №1:

Геометрия кластера — это единственная точка, в которой показан кластер. При увеличении масштаба кластер будет расширен до отдельных объектов, поэтому вы должны использовать их масштаб:

 import (createEmpty, extend} from 'ol/extent'

...

extent = createEmpty();
feature.get('features').forEach(function(feature){
  extend(extent, feature.getGeometry().getExtent());
});
...
map.getView().fit(extent, options);