如何将MapView从像素缩放到米

时间:2012-11-29 22:00:44

标签: android google-maps android-mapview scale

我正在制作一个使用Google Maps API的Android应用程序,我想将MapView缩放到X_pixels:X_meters。

例如,我的屏幕中有5个像素的MapView,现实上是20米。

这可能吗?

Thx

1 个答案:

答案 0 :(得分:2)

使用以下代码:

    int nPixles = 5; //number of pixels
    GeoPoint g0 = mapview.getProjection().fromPixels(0, mapview.getHeight()/2);
    GeoPoint g1 = mapview.getProjection().fromPixels(nPixles, mapview.getHeight()/2);
    float[] results = new float[1];
    Location.distanceBetween(g0.getLatitudeE6()/1E6, g0.getLongitudeE6()/1E6, g1.getLatitudeE6(), g1.getLongitudeE6()/1E6, results);
    float distanceInMeters = results[0];

计算屏幕中心纬度水平的距离(米)。因为地球的球形距离从屏幕的底部到顶部不同。这主要是在低缩放级别下注意到的。

问候。