API Карт Google v3 возвращает карту в маркер

Я ищу способ рецентра (фокус) карты, если маркер находится вне карты. Например, если вы нажмете маркер, который не находится в вашем viewarea... Маркер 1: Нью-Йорк Маркер 2: СанФрансиско

в V2 я делаю этот путь... но для v3 containsLatLng нуждается в дополнительной библиотеке и не работает для меня... (см. мой другой пост: Карта Google Maps v3.getBounds(). containsLatLng не является функцией) - это любой другой способ сосредоточиться на позиции маркера?

обновление:

        if ((!map.getBounds().contains(marker.getPosition())) & (showAllCategoryElements == 0)) {
        var newCenterPointLng = (map.getBounds().getCenter().lng() + marker.getPosition().lng()) / 2;
        var newCenterPointLat = (map.getBounds().getCenter().lat() + marker.getPosition().lat()) / 2;

        map.panTo(marker.getPosition());
        //map.setCenter(new google.maps.LatLng(newCenterPointLat, newCenterPointLng));

        if (!map.getBounds().contains(marker.getPosition())){
            map.zoomOut();
        } 
    }

Ответы

Ответ 1

Используемый метод содержит(), а не содержитLatLng(). map.getBounds().contains(marker.getPosition())

Вы можете использовать либо методы setCenter(), либо panTo() карты, чтобы сосредоточиться на позиции маркера: map.setCenter(marker.getPosition()) или map.panTo(marker.getPosition())

Итак, если я правильно понимаю, что вы пытаетесь сделать, это должно выглядеть так:

if ((!map.getBounds().contains(marker.getPosition())) && (showAllCategoryElements == 0)) { //Note the double &  
    map.setCenter(marker.getPosition());  
    //OR map.panTo(marker.getPosition());  
}