开发者社区> 问答> 正文

仅当建筑物完全在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(); 
            }
         }

问题来源:Stack Overflow

展开
收起
montos 2020-03-21 23:51:36 833 0
1 条回答
写回答
取消 提交回答
  • 似乎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();
        }
     }
     ...
    
    2020-03-21 23:52:09
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载