仅当建筑完全位于cameraView内时才显示GroundOverlay



正如标题中所述,本质上,我只想在摄像机位于整个建筑视图中时显示GroundOverlay。如何在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(); 
}
}

似乎Building1应该是建筑边界点的列表,并且您应该在循环中检查所有这些点是否都包含在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();
}
}
...

相关内容

  • 没有找到相关文章

最新更新