You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为基于Google Maps的MapWidget添加缩放控件?

为DJI MapWidget添加Google Maps缩放控件的解决方案

我来帮你搞定这个问题!DJI的MapWidget是基于Google Maps封装的,所以咱们可以通过获取底层的原生GoogleMap实例来启用缩放控件,具体操作步骤如下:

  • 第一步:在onMapReady回调中,通过djiMap.getGoogleMap()拿到原生的GoogleMap对象
  • 第二步:调用GoogleMap的UI设置方法,启用默认缩放控件

下面是补全后的完整代码示例:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_drone_view);
    mapWidget = findViewById(R.id.map_widget);
    mapWidget.initGoogleMap(new MapWidget.OnMapReadyListener() {
        @Override
        public void onMapReady(@NonNull DJIMap djiMap) {
            // 获取原生GoogleMap实例,注意判空避免空指针
            GoogleMap googleMap = djiMap.getGoogleMap();
            if (googleMap != null) {
                // 启用默认的缩放控件
                googleMap.getUiSettings().setZoomControlsEnabled(true);
                
                // 可选操作:自定义缩放控件的位置,比如设置在右下角
                googleMap.getUiSettings().setZoomControlsPosition(GoogleMap.UiSettings.ZOOM_CONTROLS_POSITION_BOTTOM_RIGHT);
            }
            
            cameraUpdate();
            djiMap.setOnMapClickListener(new DJIMap.OnMapClickListener() {
                @Override
                public void onMapClick(LatLng latLng) {
                    // 这里可以添加你的地图点击逻辑
                }
            });
        }
    });
}

如果想要更个性化的缩放控件,你也可以自己在布局里添加自定义按钮,然后通过调用以下代码实现缩放逻辑:

  • 放大:googleMap.animateCamera(CameraUpdateFactory.zoomIn())
  • 缩小:googleMap.animateCamera(CameraUpdateFactory.zoomOut())

内容的提问来源于stack exchange,提问作者Ismael Ochoa Miranda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:21:15