簡體   English   中英

如何在 React Native map 中獲得縮放級別

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM