2011-04-18 103 views
1

你好

我正在尝试构建一个应用程序,该应用程序在Google地图上使用ItemOverlay显示当前用户位置;问题是我不知道如何移动覆盖层,所以我尝试清除覆盖层并重新创建一个新层,但覆盖层不会被删除,而是在地图上看到n个覆盖层而不是一个覆盖层。Android:在地图上显示和移动当前位置

我的代码是:

 if(!mapView.getOverlays().isEmpty()) { 
      mapView.getOverlays().clear(); 
      mapView.invalidate(); 
     } 
     else { 
      overlayitem = new OverlayItem(point, "Where am i?", "I'm here!"); 
      itemizedoverlay.addOverlay(overlayitem); 
      mapView.getOverlays().add(itemizedoverlay); 
     } 

这似乎是明确不删除项目......

谁能帮助我?

感谢和问候 c。

+0

这很奇怪,清除+无效对我有用。尝试mapView.remove() – Reno 2011-04-18 08:12:10

回答

1

我用这个代码,它为我工作:

mapOverlays.clear(); 
    overlay = new GeoCoderItemizedOverlay(getResources().getDrawable(R.drawable.bluedot), mapview); 
    overlay.addOverlay(new OverlayItem(new GeoPoint((latitudine),(longitudine)), "Luogo segnalazione", address)); 
    mapOverlays.add(overlay); 
    mapview.invalidate(); 

或多或少相同的代码之前我张贴..

+0

它不起作用;它创建一个新的overlayitem而不删除以前的 – Cris 2011-04-18 08:29:36

0

我认为你应该使用,

myMapView.getOverlays ().clear()

+0

mapView是我的地图实例的名称,用mapView =(MapView)findViewById(R.id.mapview); – Cris 2011-04-18 08:33:28

+0

我没有给你,请你详细说明.. – 2011-04-19 05:42:30

相关问题