我想要实现的是在地图上显示两种标记。
1) 显示从数据库中提取的事件的红色标记(完成 - itemizedOverlay)
2)橙色标记,将在地图上动态显示用户的位置(itemizedOverlay2)。
我正在使用 ItemizedOverlay 来拥有 2 个不同的图层(一个用于事件,一个用于用户位置),但是显示用户位置的动态标记存在问题。
问题:
发生的情况是 LocationListener 成功获取纬度/经度并在地图上放置一个点,但前一个点仍然存在。所以我有一系列标记显示用户的位置。
我已经实现了几种我在互联网上搜索的方法,但在调用 onLocationChanged 期间都没有发生。
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);
}
}
我知道您可能需要更多我的代码,但让我们留在这个街区,看看是否有人看到我哪里出错了。
谢谢你。