如何为基于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
相关产品推荐
相关产品推荐

