我的數據庫有不同的興趣點。我希望用戶根據他們的位置查看他們。此外還有3個按鈕,顯示了在2km/5km/15km半徑範圍內的興趣點。我無法實現對這些半徑的放大功能。所以我正在尋找縮放因子(從2到21)和物理距離(以km爲單位)之間的關係。如何在谷歌地圖縮小到x公里半徑
我在另一個問題中遇到了這段代碼。
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,但我現在不知道地圖的半徑。
感謝
@ user28008624我的意思是半徑是從我的位置的地圖的終點。如果半徑爲5km,則從中點(myLocation)到地圖上的最右點應距離5km –
您當然可以做一些更多的計算,並通過插入midLeft和midRight來查看中間水平線的長度VisibleRegions轉角點。但即使在傾斜的視野下,整體延伸範圍大約爲15公里,但差異將非常小。 – user2808624