mylocationoverlay исчезает при первом обнаружении местоположения - PullRequest
0 голосов
/ 21 октября 2011

Я пытаюсь настроить наложение mylocation. К сожалению, это действует довольно странно. Он работает нормально, за исключением того, что он появляется только после того, как я покину 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;

}

У кого-нибудь есть мысли о том, что здесь может происходить? Поскольку это в значительной степени дословно, как выглядят все примеры в Интернете, я могу добавить, что я тестирую это на атриксе Motorolla под управлением 2.3.4.

1 Ответ

0 голосов
/ 21 октября 2011

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(); всякий раз, когда вам нужно выполнить перерисовку

...