无法在谷歌地图v2中获得所需的zoomlevel?

时间:2013-05-24 04:19:38

标签: android google-maps-api-2

我正在开发一个应用程序,其中基于搜索栏移动设置的地图缩放级别说    搜索栏进度为10英里,然后计算在移动屏幕地图上覆盖10英里距离的地图的精确缩放级别。附加图像中的更多解释enter image description here

我的搜索栏初始位置是1英里,最大位置是50英里,当我移动搜索栏最大位置说50地图覆盖只有30公里区域,而它应该覆盖80公里区域。我使用代码实现这是 -

private int zoomLevel(double _distance) {
    int newzoomlevel = 1;
    double distance = _distance * 1609.34;
    double equatorLength = 40075004; // in meters
    double widthInPixels = screenWidth();
    double metersPerPixel = equatorLength / 256;
    int zoomLevel = 1;
    while ((metersPerPixel * widthInPixels) > distance) {
        metersPerPixel /= 2;
        ++zoomLevel;
    }
    Log.i("current zoom level", "zoom level = " + zoomLevel);
    if (zoomLevel <=19) {
        newzoomlevel = zoomLevel;
    } else {
        newzoomlevel = zoomLevel - 2;
    }
    return newzoomlevel;

}

我将seekpar位置作为参数传递,因为它在方法I中以英里为单位,通过乘以1609.34将其转换为米。但是我的全力以赴是不正确的,请任何人提前指导我。

0 个答案:

没有答案