簡體   English   中英

Android-具有以米為單位的固定半徑的Google Maps API Heatmap

[英]Android - Google Maps API Heatmap with fixed radius in meters

適用於Android Google Maps API的Heatmap疊加層以像素為單位渲染半徑,這意味着通過放大和縮小半徑會越來越大。

我需要一個固定半徑的熱圖(例如,以米為單位而不是像素),並且在放大和縮小時都不會重新縮放。

有可能這樣做嗎?

在googlemap API中,獲取比例數據。 在用戶界面中,您可以看到說明地圖比例的圖例。 像這樣的東西-(在Google Maps右下角查看,我在下面談論2000Ft之類的東西)

在此處輸入圖片說明

您知道手機屏幕的厘米長度,知道完整寬度的像素,所以

cm(phoneScreen)-> cm /像素比->像素半徑到cm半徑。

你可以用我想的一些數學來推論。

我認為您可以使用setRadius()方法來更改熱圖位置的半徑,以響應更改的縮放比例。 像這樣:

    int DEFAULT_ZOOM_LEVEL = 10;
    int ZOOM_STEP_FOR_RADIUS = 2;

    mProvider = new HeatmapTileProvider.Builder()
            .data(mList)
            .setRadius(DEFAULT_ZOOM_LEVEL)
            .build();
    mOverlay = mMap.addTileOverlay(new TileOverlayOptions().tileProvider(mProvider));

    mMap.setOnCameraIdleListener(new GoogleMap.OnCameraIdleListener({
        @Override
        void onCameraIdle() {
            float newZoom = mMap.getCameraPosition().zoom;

            mProvider.setRadius(DEFAULT_ZOOM_LEVEL + newZoom * ZOOM_STEP_FOR_RADIUS)
            mOverlay.clearTileCache();
        }
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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