安卓地图的填充和地图边界

6

我正在使用Android地图v2,使用填充来移动地图控件和Google的标志:

       mMap.setPadding(0, 0, 0, padding_in_px);

另一方面,我需要知道地图可见部分的限制:

       LatLngBounds bounds = mMap.getProjection().getVisibleRegion().latLngBounds;

问题在于如果我设置了padding,该函数将不会返回地图上可见区域的边界,而只返回减去padding区域后的可见区域边界。
当地图有padding时,是否有任何方法可以使mMap.getProjection().getVisibleRegion()返回实际可见边界而不是地图边界-填充边界?
谢谢。
1个回答

8

使用mMap.getProjection().getVisibleRegion().latLngBounds可以得到nearLeftnearRight属性,它们是LatLng类型。

您可以使用toScreenLocation()nearLeftnearRight转换为屏幕点。一旦获得可见区域的底部点,您可以使用该点加上您设置的填充像素(例如:100,padding_in_px)。然后,您可以使用fromScreenLocation()将该点转回来。

LatLngBounds bounds = mMap.getProjection().getVisibleRegion().latLngBounds;
LatLng nearLeft = bounds.nearLeft
Point visibleNearLeftPoint =  mMap.getProjection().toScreenLocation(nearLeft);
Point screenBottomLeftPoint = new Point(visibleNearLeftPoint.x, visibleNearLeftPoint.y + padding_in_px);
LatLng screenBottomLatLng = mMap.getProjection().fromScreenLocation(screenBottomLeftPoint);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接