【问题标题】:change map type when changing zoom in google maps更改谷歌地图缩放时更改地图类型
【发布时间】:2020-04-21 07:09:26
【问题描述】:

我正在开发一个应该使用 Google 地图的 Android 应用。

我使用此代码来跟踪缩放的变化 (从这里link)

googleMap.setOnCameraMoveListener(new GoogleMap.OnCameraMoveListener() {
    @Override
    public void onCameraMove() {
        CameraPosition cameraPosition = googleMap.getCameraPosition();
        if(cameraPosition.zoom > 18.0) {
            googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
        } else {
            googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
        }
    }
});

但在这种情况下,卫星地图会在相机稍微移动时重新加载。

如何加载一定大小的区域,使地图不连续加载?

【问题讨论】:

    标签: java android google-maps


    【解决方案1】:

    只有当当前类型不是您需要的类型时,您才需要更改地图类型。在更改之前稍微修改您的代码以检查地图类型,并且仅在需要更改时进行更改:

    public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {
    
        private GoogleMap mGoogleMap;
    
        ...
        @Override
        public void onMapReady(GoogleMap googleMap) {
            mGoogleMap = googleMap;
    
            mGoogleMap.setOnCameraMoveListener(new GoogleMap.OnCameraMoveListener() {
                @Override
                public void onCameraMove() {
                    CameraPosition cameraPosition = mGoogleMap.getCameraPosition();
                    if(cameraPosition.zoom > 18.0) {
                        if (mGoogleMap.getMapType() != GoogleMap.MAP_TYPE_HYBRID) {
                            mGoogleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
                        }
                    } else {
                        if (mGoogleMap.getMapType() != GoogleMap.MAP_TYPE_NORMAL) {
                            mGoogleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
                        }
                    }
                }
            });
        }
        ...
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-21
      • 1970-01-01
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-03
      • 1970-01-01
      相关资源
      最近更新 更多