最初我可以在地图上添加引脚。我使用
删除引脚mapView.getOverlays().clear();
mapView.invalidate();
现在当我点击addPin按钮时,在地图上运行添加引脚的相同代码,但它没有添加到它上面。 请帮助.....
添加引脚的代码是: -
addPin.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
ch=1;
}
});
点击添加按钮后,触摸我要添加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();
}
});
答案 0 :(得分:0)
您对mapView.getOverlays()
的来电会返回包含所有叠加层的List
,因此当您拨打clear()
时,会删除所有叠加层。
尝试在单个clear()
上致电Overlay
。如果没有此方法,请添加它。顺便说一句,invalidate()不应该用于重绘,而是使用populate()
上的Overlay
代替。