在Android上的Google地图中计算可见半径

Jja*_*ang 5 java android google-maps

我正在试图弄清楚如何计算屏幕可见区域最大半径.

(在你说之前:嘿!矩形没有半径!我知道屏幕是矩形的(如果摄像机位于90度而不是倾斜),我说的是包围屏幕的假想圆的半径,或者,屏幕中心与矩形的一个角之间的边缘距离是相同的.

所以,据我所知,在屏幕没有倾斜的正常情况下,我可以将VisibleRegion.latLngbounds.southwest和屏幕中心之间的距离找到半径,但是当屏幕倾斜时,它会变成梯形.

现在,如果屏幕是等长梯形,那么我可以以VisibleRegion.farLeft为例(它将等于farEast)并以这种方式计算距离:

VisibleRegion vr = map.getProjection().getVisibleRegion();

Location center = new Location("center");
center.setLatitude(screenCenter.latitude);
center.setLongitude(screenCenter.longitude);

Location farVisiblePoint = new Location("farPoint");
farVisiblePoint.setLatitude(vr.farLeft.latitude);
farVisiblePoint.setLongitude(vr.farLeft.longitude);

float radius = center.distanceTo(farVisiblePoint);
Run Code Online (Sandbox Code Playgroud)

我的问题是:

地图上有任何情况,上面的计算会出错吗?梯形不是一个等one的吗?

谢谢.