Я не уверен на 100%, что слежу за вашими вопросами ... но я попробую. Этот пример работает так, чтобы проверить, что центр представления находится в границах ... таким образом, границы на самом деле меньше, чем в Бергене ... Верхний правый угол предела фактически находится в океане в центре вида при увеличении .. поэтому при увеличении центр находится в том же месте, а верхний правый становится ближе.
Решение состоит в том, чтобы заменить проверку центра проверкой границ.
if((allowedBounds.contains(map.getBounds()))...
Затем вы можете просто map.panToBounds (разрешеноBounds), если вы находитесь снаружи.
Должно сработать ... попробуйте и дайте нам знать, если у вас все еще есть проблемы, и я посмотрю поближе.
РЕДАКТИРОВАТЬ: вау .. старый вопрос ... да ладно :)