#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);