2012-12-05 41 views
0

起初我能够加入引脚上的map.I删除使用错误在加入谷歌地图针

mapView.getOverlays().clear(); 
mapView.invalidate(); 

现在接脚,当我点击addPin按钮相同的代码添加在地图上的引脚运行,但它不会被添加。 请帮助.....

代码添加引脚是: -

addPin.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      ch=1; 



     } 
    }); 

单击Add按钮触摸我在哪里我要添加PIN

view.setOnTouchListener(new OnTouchListener() { 

     public boolean onTouch(View v, MotionEvent motionEvent) { 

      Toast.makeText(getApplicationContext(), "done", Toast.LENGTH_SHORT).show(); 

      itemizedoverlay.populateList(); 
      if(ch==1){ 
      GeoPoint point = view.getProjection().fromPixels(
        (int) motionEvent.getX(), 
        (int) motionEvent.getY()); 

      overlayitem = new OverlayItem(point, "Yeahh", "I've added"); 


      itemizedoverlay.addOverlay(overlayitem); 

      mapOverlays.add(itemizedoverlay); 

      Toast.makeText(getApplicationContext(), "Added", Toast.LENGTH_SHORT).show(); 

      ch=0; 
      } 
      Toast.makeText(getApplicationContext(), "done", Toast.LENGTH_SHORT).show(); 
      return false; 
     } 
    }); 

这里经过的地方view = mapView 我正在使用计数器ch,它将在添加时变为ch = 0,并且在删除时将变为ch = 1

用于删除的代码: -

delete.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 


     view.getOverlays().clear(); 
     view.invalidate(); 

     } 
    }); 
+1

请问您可以粘贴您的addPin代码吗? –

+0

@arcastro加入! – aagam94

回答

0

您对mapView.getOverlays()回报List包含所有覆盖的呼叫,所以当你调用它clear(),删除所有覆盖。

尝试通过单个Overlay调用clear()。如果此方法不存在,请添加它。顺便说一下,invalidate()不应该用于重绘,请改为在Overlay上使用populate()