我正在使用 Apple MapKit JS 在地图上显示地点。当用户平移地图时,我的应用程序会获取当前可见区域的多边形内的位置。但是,当我删除旧注释并添加新注释时,MapKit 库会自动调整地图视图的位置,从而给用户带来不良影响。
问题:
添加新注释时,地图会改变位置,破坏用户体验。 预期行为:
我希望地图在注释更改时保持原样,位置不发生任何变化。
注意:注释已正确显示。
const updateMap = (places) => {
const annotations = buildAnnotations(places);
map.removeAnnotations(map?.annotations);
map.addAnnotations(annotations);
}
IMO 应该有一个简单的解决方案,但我在文档中没有找到任何有用的方法来防止这种行为。
我查阅了文档和 Stackoverflow,并在绝望中向 Github Copilot 寻求帮助......
我尝试的所有方法都产生了相同的效果,即地图以用户体验方面不理想的方式运行。更改注释时地图应保留mapRegion,这样用户就不会跳转。
对于寻找相同答案的任何人,有一个名为“showItems”的方法,它期望注释数组作为参数,以在地图上显示注释而不更改地图。
所以上面的代码应该是这样的:
const updateMap = (places) => {
const annotations = buildAnnotations(places);
map.removeAnnotations(map?.annotations);
map.showItems(annotations);
}