Я знаю, что этот вопрос довольно старый, но я искал ответ и нашел этот пост.
Я думаю, мой ответ мог бы стать лучше принятого.
Вместо отправки пользователя обратно в произвольный центр переместите карту обратно к краю серой области.
var map;
function initialize() {
var myLatlng = new google.maps.LatLng(0,0);
var myOptions = {
zoom: 1,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
map.addListener( 'drag', function() { handle(); });
//map.addListener( 'zoom_changed', function() { handle(); });
}
function handle(){
var bounds = map.getBounds();
var center = map.getCenter();
var sLat = bounds.getSouthWest().lat();
var nLat = bounds.getNorthEast().lat();
var cLat = center.lat();
var cLng = center.lng();
if (sLat < -85) {
map.setOptions({
center: new google.maps.LatLng(
cLat + ((sLat + 85) * -1),
cLng
)
)};
}
if (nLat > 85) {
map.setOptions({
center: new google.maps.LatLng(
cLat - nLat + 85,
cLng
)
)};
}
}
Надеюсь, это кому-нибудь поможет.