使用产品: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对象
}