首页 / 浏览问题 / 移动GIS / 问题详情
APP退出再进入后,动态层不再显示marker
1EXP 2021年11月24日

使用产品:imbole 10i fro android 操作系统:win10

数据类型:在线天地图叠加iserver发布的rest地图服务

问题详细描述:1、按以下顺序加载各图层:

加载天地图矢量底图、叠加天地图矢量注记、叠加iserver发布的rest服务、mapview添加动态图层。正常。

2、使用高德定位SDK每隔2秒获取位置并将marker点添加到动态层上。正常。

3、按照帮助文档说明释放对象顺序释放各对象,一路返回键退出APP。

4、再次打开APP,重复步骤1~2。此时定位点在动态层上不显示(已确定定位能正常获取并且动态层添加marker的方法已调用)

以下是关键代码:

/**
 * 添加动态展示层
 */
private void addDynamicLayer() {
    dynamicView = new DynamicView(context, mapControl.getMap());
    mapView.addDynamicView(dynamicView);
}

/**
 * 刷新定位点
 */
private void refreshLocationPoint(Point2D point2D) {
    dynamicView.clear();
    DynamicPoint dynamicPoint = new DynamicPoint();
    dynamicPoint.addPoint(point2D);
    DynamicStyle style = new DynamicStyle();
    style.setLineColor(Color.rgb(0, 0, 200));
    style.setBackground(MarkerManager.getInstance(context).getMarkerBitmap());
    dynamicPoint.setStyle(style);
    dynamicView.addElement(dynamicPoint);
    dynamicView.refresh();
    LogUtils.logE(getClass(),"刷新定位点");
}

public void onDestroy() {
    super.onDestroy();
    // 对象释放,顺序不能变
    mapView.removeAllDynamicView();// 移除掉动态层

    mapControl.getMap().close();
    mapControl.dispose();
    mapControl = null;
    workspace.close();

    tianditu_VEC_C_ConnInfo.dispose();// 释放天地图矢量底图连接信息
    tianditu_CVA_C_ConnInfo.dispose();// 释放天地图矢量注记连接信息
    fangsan_REST_ConnInfo.dispose();// 释放iserver发布的REST地图连接信息
    tianditu_VEC_C_ConnInfo = null;
    tianditu_CVA_C_ConnInfo = null;
    fangsan_REST_ConnInfo = null;

    workspace.dispose();
    workspace = null;

    MarkerManager.getInstance(context).free();// 释放marker bitmap对象
}

1个回答

您好,可以调试下代码返回键后再次进入是否有获取到定位点坐标,输出一下动态图层的几何对象个数
9,127EXP 2021年11月25日
...