添加注释时防止地图位置发生变化

问题描述 投票:0回答:1

我正在使用 Apple MapKit JS 在地图上显示地点。当用户平移地图时,我的应用程序会获取当前可见区域的多边形内的位置。但是,当我删除旧注释并添加新注释时,MapKit 库会自动调整地图视图的位置,从而给用户带来不良影响。

问题:

添加新注释时,地图会改变位置,破坏用户体验。 预期行为:

我希望地图在注释更改时保持原样,位置不发生任何变化。

注意:注释已正确显示。

 const updateMap = (places) => {
    const annotations = buildAnnotations(places);
    map.removeAnnotations(map?.annotations);
    map.addAnnotations(annotations);
}

IMO 应该有一个简单的解决方案,但我在文档中没有找到任何有用的方法来防止这种行为。

我查阅了文档和 Stackoverflow,并在绝望中向 Github Copilot 寻求帮助......

我尝试的所有方法都产生了相同的效果,即地图以用户体验方面不理想的方式运行。更改注释时地图应保留mapRegion,这样用户就不会跳转。

javascript mapkit-js
1个回答
0
投票

对于寻找相同答案的任何人,有一个名为“showItems”的方法,它期望注释数组作为参数,以在地图上显示注释而不更改地图。

所以上面的代码应该是这样的:

const updateMap = (places) => {
    const annotations = buildAnnotations(places);
    map.removeAnnotations(map?.annotations);
    map.showItems(annotations); 
}
© www.soinside.com 2019 - 2024. All rights reserved.