相关疑难解决方法(0)

Android:如何将地图视图的缩放级别设置为当前位置周围1公里半径?

我想将地图视图缩放到1公里半径,但无法弄清楚如何?

该文档说缩放级别1将地球赤道映射到256像素.那么如何计算我需要设置的缩放级别,以便地图视图显示1KM半径的区域?

更新:
阅读几篇博文后,我写了以下代码:

private int calculateZoomLevel() {
    double equatorLength = 6378140; // in meters
    double widthInPixels = screenWidth;
    double metersPerPixel = equatorLength / 256;
    int zoomLevel = 1;
    while ((metersPerPixel * widthInPixels) > 2000) {
        metersPerPixel /= 2;
        ++zoomLevel;
    }
    Log.i("ADNAN", "zoom level = "+zoomLevel);
    return zoomLevel;
}
Run Code Online (Sandbox Code Playgroud)

我的想法是,首先我在缩放级别1中计算每像素的米数,根据谷歌显示使用256像素的地球赤道.现在,每个后续缩放级别放大2级,因此每个缩放级别的每个像素的一半.我这样做,直到我有一个缩放级别,每个像素的米乘以屏幕宽度给我小于2000,即2公里跨.

但我不认为我得到的缩放级别显示的是2Km半径的地图.有人可以告诉我这里我做错了什么吗?

android google-maps zoom android-mapview

51
推荐指数
7
解决办法
5万
查看次数

标签 统计

android ×1

android-mapview ×1

google-maps ×1

zoom ×1