【发布时间】:2013-11-25 14:42:17
【问题描述】:
我的数据库有不同的兴趣点。我希望用户根据他们的位置看到他们。还有 3 个按钮,显示 2km / 5km / 15km 半径内的兴趣点。我无法实现这些半径的放大功能。所以我正在寻找缩放因子(从 2 到 21)和物理距离(以公里为单位)之间的关系。
我在 SO 中的另一个问题上遇到了这段代码。
private int calculateZoomLevel(int screenWidth) {
double equatorLength = 40075004; // 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;
}
但是,这是用于谷歌地图 v1 的,我担心从那时起事情可能会发生变化。我可以使用map.moveCamera(CameraUpdateFactory.newLatLngZoom(myLocation, 15f)); 以 15 倍的缩放系数放大我的位置,但我现在不知道地图的半径。
谢谢
【问题讨论】:
标签: android google-maps