Отображать GroundOverlay только тогда, когда здание полностью в пределах камеры. - PullRequest
2 голосов
/ 16 марта 2020

Как указано в заголовке, по сути, я хочу отображать GroundOverlay только тогда, когда камера находится в поле зрения всего . Как мне выполнить sh в методе onCameraMove ()? На данный момент наложение отображается, даже когда часть здания находится в поле зрения камеры.

@Override
    public void onCameraMove(){
        LatLngBounds bounds = mMap.getProjection().getVisibleRegion().latLngBounds;
        private static final LatLng Building1 = new LatLng(54.69726685890506,-2.7379201682812226);

        if(mMap.getCameraPosition().zoom > 17){
            if (bounds.contains(Building1)) {
                  displayOverlay(); 
            }
         }

1 Ответ

1 голос
/ 17 марта 2020

Кажется, что Building1 должен быть списком граничных точек здания, и вы должны проверить в al oop, что ВСЕ из них содержатся в bounds:

...
List<LatLng> buildingPoints = new ArrayList<>();
buildingPoints.add(new LatLng(...,...))
buildingPoints.add(new LatLng(...,...))
...

...
if(mMap.getCameraPosition().zoom > 17){
    boolean allPointsVisible = true;
    for (LatLng currBuildingPoint: buildingPoints) {
        if (!bounds.contains(currBuildingPoint)) {
            allPointsVisible = false;
            break;
        }
    }
    if (allPointsVisible) {
        displayOverlay();
    }
 }
 ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...