У меня возникают проблемы с отображением всех выноски сразу, когда пользователь достигает определенного уровня масштабирования. Я попробовал использовать приведенный ниже код, и в итоге случайным образом отображалась только одна выноска.
changeRegion = debounce(async (region) => {
let zoomLevel =
Math.log2(360 * (metrics.screenWidth / 256 / region.longitudeDelta)) + 1;
if (zoomLevel > 16) {
this.marker.showCallout();
} else if (zoomLevel < 13) {
//Hide callouts
}
await this.getAllData();
}, 1000);
<MapView
...
onRegionChangeComplete={this.changeRegion}
>
<Marker
ref={(marker) => {
this.marker = marker;
}}
...
/>
</MapView>