我在触摸地图时添加了一个制作工具,想要点击某个按钮删除该标记,但该标记不会从地图中删除。这是我的代码
// Marker of end Point
Marker endPointMarker;
点击地图
@Override
public void onMapClick(LatLng point) {
// TODO Auto-generated method stub
double lat = point.latitude;
double lng = point.longitude;
// Add marker of destination point
try {
Geocoder geocoder;
List<Address> addresses;
geocoder = new Geocoder(BookCabScreen.this);
if (lat != 0 || lng != 0) {
addresses = geocoder.getFromLocation(lat, lng, 1);
String address = addresses.get(0).getAddressLine(0);
String city = addresses.get(0).getAddressLine(1);
String country = addresses.get(0).getAddressLine(2);
Log.d("TAG", "address = " + address + ", city =" + city
+ ", country = " + country);
endPointMarker = mMap.addMarker(new MarkerOptions()
.position(new LatLng(lat, lng))
.title("Location").snippet("" + address));
markers.add(mMap.addMarker(new MarkerOptions()
.position(new LatLng(lat, lng))
.title("Location").snippet("" + address)));
btnStartUp.setEnabled(true);
btnStopPoint.setEnabled(true);
mJbBookCab.setEndPointLat(lat);
mJbBookCab.setEndPointLng(lng);
} else {
Toast.makeText(BookCabScreen.this,
"latitude and longitude are null",
Toast.LENGTH_LONG).show();
}
} catch (Exception e) {
e.printStackTrace();
}
}
点击按钮
if (endPointMarker != null) {
endPointMarker.remove();
endPointMarker = null;
}
但它不是从地图上删除的吗?请帮忙
答案 0 :(得分:2)
您要添加两次相同的标记:
endPointMarker = mMap.addMarker(new MarkerOptions()
.position(new LatLng(lat, lng))
.title("Location").snippet("" + address));
markers.add(mMap.addMarker(new MarkerOptions()
.position(new LatLng(lat, lng))
.title("Location").snippet("" + address)));
只需移除一次对GoogleMap.addMarker
的调用。
答案 1 :(得分:0)
你正在做的是正确的但是如果这不起作用那么你可以在你的onclick方法中使用mMap.clear()这将删除所有标记,或者如果你只想要一个特定的标记不显示那么你可以使用endPointMarker.setVisible(假)