Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?v=3.31&key=AIzaSyAo89GIZM7kcmOFHGKd4U1fyd7s0wkSxNk"></script>
<div id="mapCanvas"></div>
 
#mapCanvas{width:500px;height:300px;}
 
var map = {};
function initialize() {
    var myOptions = {
        center: new google.maps.LatLng(45.4555729, 9.169236),
        zoom: 13,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        panControl: true,
        mapTypeControl: false,
        panControlOptions: {
            position: google.maps.ControlPosition.RIGHT_CENTER
        },
        zoomControl: true,
        zoomControlOptions: {
            style: google.maps.ZoomControlStyle.LARGE,
            position: google.maps.ControlPosition.RIGHT_CENTER
        },
        scaleControl: false,
        streetViewControl: false,
        streetViewControlOptions: {
            position: google.maps.ControlPosition.RIGHT_CENTER
        }
    };
    map = new google.maps.Map(document.getElementById("mapCanvas"), myOptions);
}
function pan(map, newCenterLatLng, offsetx, offsety, callback) {
    if (!map.getProjection()) {
        if (callback) {
            return setTimeout(pan, 1, map, newCenterLatLng, offsetx, offsety, callback);
        }
        throw new Error("You must wait until map.getProjection() is ready. Try using the callback instead");
    }
    var newCenterLatLngPixels = map.getProjection().fromLatLngToPoint(newCenterLatLng);
    var offset = new google.maps.Point(
        ((typeof (offsetx) == "number" ? offsetx : 0) / Math.pow(2, map.getZoom())) || 0,
        ((typeof (offsety) == "number" ? offsety : 0) / Math.pow(2, map.getZoom())) || 0
    );
    map.setCenter(map.getProjection().fromPointToLatLng(new google.maps.Point(
        newCenterLatLngPixels.x - offset.x,
        newCenterLatLngPixels.y + offset.y
    )));
    if (callback) {
        return callback();
    }
}
function fitBoundsAndCallback(map, bounds, callback) {
    google.maps.event.addListenerOnce(map, "bounds_changed", function() {
        if (callback) {
            callback();
        }
    });
    // Pan the map 1 pixel to the left so that bounds will always change
    // even in the event you are fitting to the same bounds as before
    // Remove this once the move to gmaps 3.32 as bounds_changed works always
    this.pan(map, map.getCenter(), 0, 1, function(){
      map.fitBounds(bounds);
    });
}
function setBounds(i) {
    var n = i || 0;
    n = n / 1000000000000;
    var bounds = new google.maps.LatLngBounds(
        new google.maps.LatLng(40.99648401437799 + n, -109.0283203125),
        new google.maps.LatLng(37.002552672159545, -102.06298828125)
    );
    map.fitBounds(bounds);
    fitBoundsAndCallback(map, bounds, function() {
        console.log('bounds_changed');
    })
}
initialize();
setBounds(2);
setTimeout(function(){setBounds(2);}, 1000);
setTimeout(function(){setBounds(2);}, 2000);
setTimeout(function(){setBounds(3);}, 3000);
Output 300px

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers