我想在地图上任何地方长时间单击后删除当前标记,并在该点重新创建一个新标记。我已经清除了谷歌地图上长时间点击地图和新的标记被创建,但以前的标记也显示。
我的代码是:
public class EditLocation extends Fragment {
View v;
Context c;
GoogleMap MAP;
Button back;
int loc;
String lat;
boolean isTapped = true;
public EditLocation(Context c, int location, String latitude) {
// TODO Auto-generated constructor stub
this.c = c;
this.loc = location;
this.lat = latitude;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
v = inflater.inflate(R.layout.map, container, false);
int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(c);
if (status != ConnectionResult.SUCCESS) {
int requestCode = 10;
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(status,
(Activity) c, requestCode);
dialog.show();
} else {
FragmentManager myFM = ((FragmentActivity) c)
.getSupportFragmentManager();
final SupportMapFragment myMAPF = (SupportMapFragment) myFM
.findFragmentById(R.id.fragmentmap);
MAP = myMAPF.getMap();
MAP.setMyLocationEnabled(true);
LocationManager locationManager = (LocationManager) c
.getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, true);
final Location location = locationManager
.getLastKnownLocation(provider);
final LatLng currentPosition = new LatLng(location.getLatitude(),
location.getLongitude());
MAP.setOnMapClickListener(new OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {
// TODO Auto-generated method stub
MAP.addMarker(new MarkerOptions()
.position(currentPosition)
.snippet(
"Lat:" + location.getLatitude() + "Lng:"
+ location.getLongitude())
.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_AZURE))
.title("ME"));
Log.e("lat", "" + point);
}
});
MAP.setOnMapLongClickListener(new OnMapLongClickListener() {
@Override
public void onMapLongClick(LatLng point) {
// TODO Auto-generated method stub
// isTapped = false;
MAP.clear();
MAP.addMarker(new MarkerOptions().position(point)
.title(point.toString()));
}
});
}
return v;
}
发布于 2015-03-12 21:01:47
只需在添加标记前清除google地图即可。如下所示:
@Override
public void onMapLongClick(LatLng latLng) {
googleMap.clear();
googleMap.addMarker(new MarkerOptions()
.position(latLng)
.title(latLng.toString())
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
}
发布于 2015-12-09 14:02:33
这是一个简单的方法,你只需要改变标记的position
即可。将全局对象创建为Marker marker;
之后将标记添加到地图,如下所示
marker = map.addMarker(markerOptions).position(new Latlng(31.647316, 74.763791));
然后在需要添加标记的地方使用marker.setPosition(newlaLng);
。
发布于 2019-09-17 15:05:54
首先清除Google地图,然后添加一个新的标记。检查下面的代码
mMap.clear();
//google map marker adding code here
https://stackoverflow.com/questions/17379807
复制相似问题