GroundOverlay mostrar sólo cuando la construcción es enteramente dentro ángulo de cámara

dantheman:

Como se indica en el título, esencialmente, sólo quiero mostrar la superposición del suelo cuando la cámara está a la vista de la totalidad del edificio. ¿Cómo voy a lograr esto dentro del método onCameraMove ()? A partir de ahora la superposición aparece incluso cuando parte del edificio está dentro de la vista de la cámara.

@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(); 
            }
         }
Andrii Omelchenko:

Parece que Building1debe haber una lista de los puntos de contorno del edificio, y usted debe comprobar en un bucle que todos ellos están contenidos en 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();
    }
 }
 ...

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=339623&siteId=1
Recomendado
Clasificación