下面是我的react-leaflet简单Map的代码,我已经给出了center和zoom值
<Map
center={[-30.036294, 20.71996]}
zoom={5.8}>
{markers.map(m => {
return <Marker position={[m.latitude, m.longitude]} />
})}
</Map>
每当我试图更新标记Map的位置移动它的方向,我明白,marker
是一个状态,当我更新状态Map
应该重新渲染,但它甚至不会去中心位置,它只是随机改变位置。我想做的是我不希望Map改变它的方向,每当我更新标记。我用react-leaflet: v2.4.0
1条答案
按热度按时间7lrncoxx1#
我猜,根据传单的文档,在不了解更多代码的情况下,标记在Map上移动时会被聚焦。传单中标记的API有一个选项
autoPanOnFocus
,默认设置为true。标记组件上似乎没有此选项。您可以尝试使用标记构造函数手动添加标记,并使用useMap钩子将其添加到Map中。另一种方法可以是在更新标记位置时一起禁用平移。侧记:根据经验,我知道Map组件的中心位置只是传单的起点。之后的任何更改都不会使Map保持在中心。禁用平移可以解决这个问题。