Вам нужно позвонить setOnMapClickListener
, чтобы использовать OnMapClickListener
на вашей карте:
this.googleMap.setOnMapClickListener(this);
Добавьте его к функции onMapReady
следующим образом:
@Override
public void onMapReady(GoogleMap googleMap) {
this.googleMap = googleMap;
if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}, 2);
}
this.googleMap.setOnMapClickListener(this);
mapDisplayPosition();
}
Тогдадобавьте маркер в функцию onMapClick
следующим образом:
@Override
public void onMapClick(LatLng latLng) {
MarkerOptions marker = new MarkerOptions()
.position(latLng);
this.googleMap.addMarker(marker);
}
Теперь вы сможете размещать маркеры при нажатии в любом месте на карте. Однако обратите внимание, что вы очищаете свою карту в функции onLocationChanged
через эту строку:
googleMap.clear();
, которая заставляет новые маркеры исчезать в течение нескольких секунд. Предполагая, что это не предназначенное поведение, исправьте это, закомментировав это, то есть //googleMap.clear();
.
Надеюсь, это поможет! :)