.remove()无法在android google maps api v2中运行

时间:2015-04-12 14:13:56

标签: android google-maps google-maps-markers

在Android应用程序中处理Google maps API V2时,我希望有两个标记,一个用于源,一个用于目标。我设置了两个标记的全局引用,当我移动到其他位置并使用destinationMarker.remove()删除目标标记时,它对我不起作用。它不会删除之前的标记。

代码:

//Global references
    Marker sourceMarker;
    Marker destinationMarker;
    ... 
    ...
    public void geoLocate(View v) throws IOException{
        hideSoftKeyBoard(v);
        EditText et = (EditText)findViewById(R.id.editText1);
        String Location = et.getText().toString();
        if(Location.length() == 0){
            Toast.makeText(this, "Please specify a Location", Toast.LENGTH_LONG).show();
            return;
        }
        Geocoder gc = new Geocoder(this);
        List<Address> list = gc.getFromLocationName(Location, 1);
        Address add = list.get(0);
        String locality = add.getLocality();
        Toast.makeText(this, locality, Toast.LENGTH_LONG).show();
        double lat = add.getLatitude();
        double lng = add.getLongitude();
        gotoLocation(lat, lng, DEFAULT_ZOOM);
        if(destinationMarker != null){
         //removing marker if exists
            destinationMarker.remove();
        }
        MarkerOptions options = new MarkerOptions().title(locality).position(new LatLng(lat,lng));
        destinationMarker = mMap.addMarker(options);

    }

1 个答案:

答案 0 :(得分:1)

可能它不起作用,因为您在添加标记之前删除标记并使用addMarker(..)方法对其进行引用。使用addmarker(..)方法引用后,请删除制作者。

MarkerOptions options = new MarkerOptions().title(locality).position(new LatLng(lat,lng));
        destinationMarker = mMap.addMarker(options);
 if(destinationMarker != null){
         //removing marker if exists
            destinationMarker.remove();
        }

    }