在Google地图上添加引脚时出错

时间:2012-12-05 12:44:22

标签: android google-maps itemizedoverlay

最初我可以在地图上添加引脚。我使用

删除引脚
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();

        }
    });

1 个答案:

答案 0 :(得分:0)

您对mapView.getOverlays()的来电会返回包含所有叠加层的List,因此当您拨打clear()时,会删除所有叠加层。

尝试在单个clear()上致电Overlay。如果没有此方法,请添加它。顺便说一句,invalidate()不应该用于重绘,而是使用populate()上的Overlay代替。