我正在尝试设置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上测试它。
答案 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();