我正在尝试设置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的摩托罗拉矩阵上测试的。
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();