0

最初に、マップにピンを追加できました。次を使用してピンを削除します

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

        }
    });
4

1 に答える 1

0

すべてのオーバーレイを含む呼び出しをmapView.getOverlays()返すため、それを呼び出すと、すべてのオーバーレイが削除されます。Listclear()

clear()単一の で呼び出してみてくださいOverlay。このメソッドが存在しない場合は、追加します。ちなみに、invalidate() は再描画には使用populate()しないでくださいOverlay。代わりに使用してください。

于 2012-12-05T12:46:10.900 に答える