mylocationoverlay第一次找到位置时消失

时间:2011-10-21 03:32:00

标签: android android-mapview mylocationoverlay

我正在尝试设置mylocationoverlay。不幸的是,它表现得非常奇怪。它工作正常,除非它在我离开MapActivity并返回我的应用程序之后才出现。最初地图会出现,并且在获得精确位置时会有一个蓝色圆圈。然而,圆圈消失了,而不是解决到一个点。

我的代码如下:

onResume() {
    myLocation = new MyLocationOverlay(getActivity(), mp);
myLocation.enableMyLocation();
myLocation.runOnFirstFix(new Runnable(){
       public void run() {
          map.getOverlays().clear();
      map.getOverlays().add(myLocation);
      map.postInvalidate();
       }
    }
}


onPause() {
  myLocation.disableMyLocation();
  layout.removeView(map);
  map = null;

}

有没有人对这里可能发生的事情有任何想法?由于这几乎是所有在线示例的逐字逐句,我可能会补充一点,我在运行2.3.4的motorolla atrix上测试它。

1 个答案:

答案 0 :(得分:0)

Edit :让我带您完成代码:

onResume() {
// First time: draw a circle somewhere here. There is no GPS fix yet, so no dot. 
// Second time: The dot from the previous fix exists, so you get a circle and dot.
myLocation = new MyLocationOverlay(getActivity(), mp);
myLocation.enableMyLocation();
myLocation.runOnFirstFix(new Runnable(){
       public void run() {
       // First time: removes the circle and draws a dot.
       // Second time: removes the circle and dot, and draw a new dot. 
       map.getOverlays().clear();
       map.getOverlays().add(myLocation);
       map.postInvalidate();
       }
    }
}

map.getOverlays().clear();删除了圈子

使用remove()来删除您不想要的叠加层,而不是全部清除它们。

每当您需要强制重绘时,请务必致电map.invalidate();