0

最初我可以在地图上添加图钉。我使用删除图钉

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

现在,当我单击 addPin 按钮时,在地图上添加 pin 的相同代码运行,但它没有被添加到它上面。请帮忙.....

添加引脚的代码是:-

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();

        }
    });
4

1 回答 1

0

您对mapView.getOverlays()返回的调用List包含所有覆盖,因此当您调用clear()它时,您会删除所有覆盖。

尝试调用clear()单个Overlay. 如果没有此方法,请添加它。而且,顺便说一句, invalidate() 不应该用于重绘,而是使用populate()你的Overlay

于 2012-12-05T12:46:10.900 回答