Android 删除onLocationChanged期间的itemizedOverlay
我想要实现的是在地图上显示两种标记 1) 显示从数据库绘制的事件的红色标记(完成-ItemizeOverlay) 2) 橙色标记,将动态显示用户在地图上的位置(ItemizeOverlay2) 我使用ItemizedOverlay来拥有两个不同的层(一个用于事件,一个用于用户位置),但是我对显示用户位置的动态标记有一个问题 问题: 发生的情况是LocationListener成功获取纬度/经度并在地图上放置一个点,但上一个点仍然存在。因此,我有一系列标记显示用户的位置 我已经实现了一些搜索互联网的方法,但在调用onLocationChanged时没有一种发生Android 删除onLocationChanged期间的itemizedOverlay,android,itemizedoverlay,Android,Itemizedoverlay,我想要实现的是在地图上显示两种标记 1) 显示从数据库绘制的事件的红色标记(完成-ItemizeOverlay) 2) 橙色标记,将动态显示用户在地图上的位置(ItemizeOverlay2) 我使用ItemizedOverlay来拥有两个不同的层(一个用于事件,一个用于用户位置),但是我对显示用户位置的动态标记有一个问题 问题: 发生的情况是LocationListener成功获取纬度/经度并在地图上放置一个点,但上一个点仍然存在。因此,我有一系列标记显示用户的位置 我已经实现了一些搜索互联网
class myLocationListener implements LocationListener{
OverlayItem overlayItem;
@Override
public void onLocationChanged(Location location) {
if (location != null){
mapOverlays.remove(itemizedOverlay2);
mapView.invalidate();
lat = location.getLatitude();
longi = location.getLongitude();
GeoPoint point = new GeoPoint((int) (lat * 1E6), (int) (longi * 1E6));
mControl.animateTo(point);
overlayItem = new OverlayItem(point, "My Location", "This is probably where you are");
itemizedOverlay2.addOverlay(overlayItem);
mapOverlays.add(itemizedOverlay2);
}
}
我知道您可能需要更多我的代码,但让我们呆在这里,看看是否有人看到我的错误
谢谢。您尚未发布itemizedOverlay2所属类的代码,但我猜它扩展了ItemizedOverlay。因为它有一个addOverlay()方法,我猜它也有一个.clear()方法 如果是这样,则应该在添加新位置之前调用clear()
itemizedOverlay2.clear();
itemizedOverlay2.addOverlay(overlayItem);
使用内置类
MyLocationOverlay
:
position = new MyLocationOverlay(this, mapView);
position.enableMyLocation();
mapOverlays.add(position);
关于itemizedOverlay2扩展了一个名为MyItemizedOverlay的类,您是对的。事情是没有clear()方法。clear()方法可用于我尝试过的mapOverlays mapOverlays.clear(),它同时清除itemizedOverlay和ItemizedOverlay2,然后您应该编写一个clear()方法。public void clear(){mOverlays.clear();}这不会同时删除这两项吗?(itemizedOverlay和itemizedOverlay2)?不可能,请调用clear删除覆盖上已经存在的项目,然后添加覆盖以添加新项目,如发布的答案所示。你是对的,它起作用了。我是android新手,尽管我尝试了clear()方法,但还是清除了这两项。没有想过用你刚才提到的方式:)我真傻。谢谢。我已经考虑过了,但这是另一种方法,不是解决我问题的办法。但是使用MyLocationOverlay,我不知道如何更改接收位置的频率,通常我不知道它是否可以完成LocationListener所能做的所有事情。此链接可能对您有用:。