когда я нажимаю на один маркер, мне нужно увеличить масштаб на два уровня, чтобы увидеть местоположение

#javascript #html #reactjs #leaflet

#javascript #HTML #reactjs ( реакция ) #листовка

Вопрос:

  • Я использую группу кластеров маркеров.
  • используя это, я могу показать два маркера.
  • когда вы нажмете номер два, который выделен красным цветом, вы увидите два маркера.
  • после этого, когда я нажимаю на один маркер, мне нужно увеличить масштаб на два уровня, чтобы увидеть местоположение
  • Для этого я написал щелчок по маркеру и добавил масштабирование, а также попытался использовать fitbounds, но это не увеличило масштаб.
  • тогда мы использовали mapcenter, и это тоже не сработало `
  • можете ли вы сказать мне, как это исправить.
  • предоставляю свой фрагмент кода и песочницу ниже.

https://codesandbox.io/s/20756jrz8p

 MarkerClick = e => {
console.log("e----->", e);
this.setState({
  viewport: { center: [20, 6], zoom: 7 }
});
//this.refs.mymap.leafletElement.setZoom(8);
//let bounds = this.refs.mymap.leafletElement.fitBounds();
//console.log("bounds----->", bounds);

console.log(
  "after setting state zoomlevel bounds showCard--->",
  this.state.zoom
);

// this.setState({ zoom: 18 });

//this.setState({ zoomLevel: 7 });
  

};

Ответ №1:

Значение масштабирования, которое вы использовали в MarkerClick (), меньше текущего значения масштабирования (zoom = 8). Следовательно, вы не получаете надлежащего масштабирования. Используйте Zoom = 14 или 16 и другой набор координат вместо [20,6].

Например:

 MarkerClick = e => {
...
    this.setState({
          viewport: { center: [43.39528702235596, 6.294845731267186], zoom: 16 }
    });
...
}