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 Building1
debe 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();
}
}
...