Фон
Предположим, что у меня есть вид Google maps, а другой вид поверх него, который покрывает его часть, скрывая некоторое содержимое карты.
Проблема
Мне нужно сделать "камеру" на карте, сфокусироваться и иметь маркер на координате, но пусть все это будет в середине видимой части карты.
Что-то вроде этого:
Исходный код фокусировался на центре всего экрана, делая маркер почти невидимым (поскольку его вид снизу).
Вещь, я не могу найти правильный способ установить правильное значение для координаты Y самой карты (что означает широта).
Что я пробовал
Я попробовал, учитывая высоту представления снизу, и координату, на которую я положил маркер, для вычисления дельта (но, конечно, не изменить сам маркер):
final float neededZoom = 6.5f;
int bottomViewHeight = bottomView.getHeight();
LatLng posToFocusOn = ...;
final Point point = mMap.getProjection().toScreenLocation(posToFocusOn);
final float curZoom = mMap.getCameraPosition().zoom;
point.y += bottomViewHeight * curZoom / neededZoom;
posToFocusOn = mMap.getProjection().fromScreenLocation(point);
final CameraUpdate cameraPosition = CameraUpdateFactory.newCameraPosition(new Builder().target(posToFocusOn).zoom(neededZoom).build());
К сожалению, это фокусируется выше маркера.
Вопрос
Что случилось с тем, что я написал? Что я могу сделать, чтобы исправить это?