[英]how to get zoom level in react native map
我正在嘗試計算用戶放大或縮小時的縮放級別,
我發現反應原生地圖有一個 onRegionChange 有經度,緯度,經度增量和緯度增量(我猜)可以用來計算縮放級別
從這個回應我試過這樣:
Math.round(Math.log(360 / this.state.longitudeDelta) / Math.LN2);
但它返回一個大數字(這不是縮放級別)。
在 react-native-map 的onRegionChangeComplete
編寫如下函數
changeRegion = debounce(async region => {
console.log(
Math.log2(360 * (metrics.screenWidth / 256 / region.longitudeDelta)) + 1
);
}, 1000);
或者具體來說, Math.log2(360 * (metrics.screenWidth / 256 / region.longitudeDelta)) + 1);
魔法。
<MapView onRegionChangeComplete={async (region) => { const coords = await ref?.current?.getCamera(); console.log('coords', coords.zoom); }} ref={ref} />
log2(360 * ((screenWidth/256) / region.longitudeDelta)) + 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.