我把变焦放到距我当前位置5公里的移动屏幕上

时间:2014-08-10 12:02:04

标签: android maps

我正在创建一个Android应用程序,我正在显示当前位置。我只是想知道我应该放大什么来将我的移动屏幕聚焦到离我当前位置5公里。提前谢谢。

1 个答案:

答案 0 :(得分:0)

这取决于地图视图元素的宽度。

根据CameraPosition.Builder.zoom

  

设置相机的缩放级别。缩放级别定义为at   缩放级别0,整个世界大约256dp宽(假设   相机没有倾斜)。将缩放级别增加1倍   屏幕上的世界宽度。因此,在缩放级别N处,宽度   世界的大约是256 * 2 N dp,即,在缩放级别2,   整个世界大约是1024dp宽。

     

更改地图的相机位置时,缩放级别   根据各种因素,相机被限制在一定范围内   包括位置,地图类型和地图大小。使用   GoogleMap.getMinZoomLevel和GoogleMap.getMaxZoomLevel可以找到   限制。请注意,相机变焦不必是整数值。

您可以尝试这样的事情:

private int calculateZoomLevel(int mapViewWidthInDp)
{
double equatorLength = 40075004; // in meters
double widthInDp = mapViewWidthInDp;
double metersPerDp = equatorLength / 256;
int zoomLevel = 0;
while ((metersPerDp * widthInDp) > 10000) {
        metersPerDp /= 2;
        ++zoomLevel;
    }
return zoomLevel;
}