Я ищу способ отключить автоцентр фрагмента карты на выбранных функциях маркера. Я все еще хочу, чтобы маркеры InfoWindow отображались, но не центрировали всю карту на выбранном вами маркере.
Как отключить маркер маркера Android
Ответ 1
Взгляните на следующее сообщение:
Не привязывайтесь к маркеру после клика на Android-карте v2
Существует метод, заданный там @DMan, в основном вам нужно использовать событие OnMarkerClick
и переопределить поведение по умолчанию:
// Since we are consuming the event this is necessary to
// manage closing openned markers before openning new ones
Marker lastOpenned = null;
mMap.setOnMarkerClickListener(new OnMarkerClickListener() {
public boolean onMarkerClick(Marker marker) {
// Check if there is an open info window
if (lastOpenned != null) {
// Close the info window
lastOpenned.hideInfoWindow();
// Is the marker the same marker that was already open
if (lastOpenned.equals(marker)) {
// Nullify the lastOpenned object
lastOpenned = null;
// Return so that the info window isn't openned again
return true;
}
}
// Open the info window for the marker
marker.showInfoWindow();
// Re-assign the last openned such that we can close it later
lastOpenned = marker;
// Event was handled by our code do not launch default behaviour.
return true;
}
});
Ответ 2
Простой способ:
- Реализация setOnMarkerClickListener()
- Возврат "ИСТИНА", чтобы предотвратить GoogleMap по умолчанию перемещает центр карты на маркер.
Пример:
map.setOnMarkerClickListener(
new OnMarkerClickListener() {
boolean doNotMoveCameraToCenterMarker = true;
public boolean onMarkerClick(Marker marker) {
//Do whatever you need to do here ....
return doNotMoveCameraToCenterMarker;
}
});
Ответ 3
Очень просто:
Используйте нижеприведенный код для реализации setOnMarkerClickListener().
@Override
public boolean onMarkerClick(Marker marker) {
marker.showInfoWindow(); // show info window
return true; // can't move map by this
}