I\'m using leaflet.js and OSM tiles to create a map, but I\'d only like the continental United States to be viewable, not the entire world. Is that possible?
I\'m lo
That's possible and easy to do. First of you'll need the coordinates for the bounding box (the outermost edges) of the continental united states. You can just google them, i found them here: http://isithackday.com/geoplanet-explorer/index.php?woeid=24865672 You need the southwest and northeast coordinates to create a bounds object:
var maxBounds = L.latLngBounds(
L.latLng(5.499550, -167.276413), //Southwest
L.latLng(83.162102, -52.233040) //Northeast
);
Or you can go for the shorthand version, a nested array:
var maxBounds = [
[5.499550, -167.276413], //Southwest
[83.162102, -52.233040] //Northeast
];
Now you can set those on your map in two ways, upon initialization, using the maxBounds option and the fitBounds method of L.Map
L.map('map', {
'center': [0, 0],
'zoom': 0
'maxBounds': maxBounds
}).fitBounds(maxBounds);
Here's a working example on Plunker: http://plnkr.co/edit/eEsxeh?p=preview
Or when your map is already initialized you can use the setMaxBounds method and the fitBounds method of L.Map. (assuming your map is assigned to variable map):
map.setMaxBounds(maxBounds);
map.fitBounds(maxBounds);
Here's a working example on Plunker: http://plnkr.co/edit/HJKk0O?p=preview