在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);
}
答案 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();
}
}