Android 如何在点击按钮setMyLocationEnabled后直接在Google地图上添加标记?
我做了一个密码。 在这段代码中,当我单击地图时,在单击的点上会有一个标记 这是我的代码Android 如何在点击按钮setMyLocationEnabled后直接在Google地图上添加标记?,android,google-maps,Android,Google Maps,我做了一个密码。 在这段代码中,当我单击地图时,在单击的点上会有一个标记 这是我的代码 public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { private GoogleMap mMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(final GoogleMap googleMap) {
mMap = googleMap;
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED) {
mMap.setMyLocationEnabled(true);
} else {
Toast.makeText(getApplicationContext(), "oh, no", Toast.LENGTH_LONG).show();
}
googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {
String lat = String.valueOf(point.latitude);
String lng = String.valueOf(point.longitude);
MarkerOptions marker = new MarkerOptions().position(
new LatLng(point.latitude, point.longitude)).title("ok");
mMap.addMarker(marker);
}
});
}
}
问题:
我想要的是,当我单击SetMylocationEnable按钮时,还添加了一个新标记。因为我想标记是整个地图中唯一的一个,所以之前在地图中的另一个标记将被删除。我怎么做?你能教我吗
你们可以在图中看到我说的按钮是什么。(图片来自:)
保留对标记的引用,如果引用为空,则按您所做的方式创建标记,如果不是,则编辑标记并更改其位置@Cabezas getMyLocation()不推荐使用,您可以更新答案吗?
mMap.setOnMyLocationButtonClickListener(new OnMyLocationButtonClickListener() {
@Override
public boolean onMyLocationButtonClick() {
Location location = getLocation();
MarkerOptions marker = new MarkerOptions().position(
new LatLng(location.getLatitude(), location.getLongitude())).title("ok");
mMap.addMarker(marker);
return true;
}
});
private Location getLocation() {
LocationManager locationManager = (LocationManager)
getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
return locationManager.getLastKnownLocation(locationManager
.getBestProvider(criteria, false));
}