Skip to content

初始化地图

有2种方式可以创建地图View

通过布局文件

xml
    <com.dmap.api.maps.MapView
        android:id="@id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </com.dmap.api.maps.MapView>

通过代码初始化

java
MapView didiMapView = new MapView(context);

第二种方式提供更多灵活的配置,具体可参加API文档。

此外,要在Activity内实现完整的MapView的生命周期,让MapView来管理绘制逻辑,使其在后台的时候暂停绘制,结束时销毁地图等。不正确调用会造成内存泄漏等问题。

java
    @Override
    protected void onStop() {
        super.onStop();
        mapView.onStop();
    }


    @Override
    protected void onPause() {
        super.onPause();
        mapView.onPause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mapView.onDestroy();
    }

    @Override
    protected void onStart() {
        super.onStart();
        mapView.onStart();
    }

    @Override
    protected void onResume() {
        super.onResume();
        mapView.onResume();
    }

获取DiMap对象

DiMap是对地图整体进行控制的接口类。可以通过其调整地图的中心点、俯仰角,创建Marker等基本操作。

java
    // 滴图地图采用异步方式获取DiMap对象
    didiMapView.getMap(new OnMapReadyCallback(){
            @Override
            public void onMapReady(DiMap diMap) {
                mDiMap = diMap;
                // 拿到DiMap后,进行后续的操作
            }
        });

此时,即完成了显示地图的工作了,效果如下图所示: