Android: как проверить, отображается ли myLocation на карте при текущем уровне масштабирования?

У меня есть карта Google, где, когда пользователь перемещается, перемещается синяя точка (myLocation) - стандартное поведение. Это хорошо работает до тех пор, пока пользователь не выйдет за пределы текущего уровня масштабирования и синяя точка не исчезнет с одного из краев карты. Я не хочу перефокусировать карту каждый раз, когда пользователь перемещается, и я получаю обновление местоположения — точка myLocation не обязательно всегда должна быть в центре экрана — но необходимо, чтобы myLocation всегда быть видимым, поэтому, если пользователь перемещается с одной стороны карты, я хочу перефокусировать карту, чтобы он снова стал видимым.

Как узнать, что myLocation переместился за пределы видимой области экрана?


person Jon    schedule 19.12.2015    source источник
comment
вы можете периодически проверять обновления местоположения и перемещать камеру в текущее местоположение   -  person Vivek Mishra    schedule 19.12.2015


Ответы (1)


Решено получением текущих границ карты и последующей проверкой «содержит» последнюю известную широту:

if (!map.getProjection().getVisibleRegion().latLngBounds.contains(locationToLatLng(lastKnownLocation))) {
                map.moveCamera(CameraUpdateFactory.newCameraPosition(getCameraPositionFromLocationWithZoom(lastKnown, getCurrentZoom())));
            }
person Jon    schedule 19.12.2015