Skip to content

Google Maps - Zoom

The zoom level determines the magnification of the map, controlling how much detail is visible, from a world view down to individual buildings.

Zoom levels are integers, where higher values correspond to greater magnification (zooming in):

  • 1: World
  • 5: Landmass / Continent
  • 10: City
  • 15: Streets
  • 20: Individual Buildings

The exact level needed depends on the context and the area you want to display.

You set the initial zoom level when creating the map using the zoom property in the MapOptions object.

Example: Setting Initial Zoom to City Level (10)

Section titled “Example: Setting Initial Zoom to City Level (10)”
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Initial Zoom Example</title>
<style>#map { height: 400px; width: 100%; } html, body { height: 100%; margin: 0; padding: 0; }</style>
</head>
<body>
<div id="map"></div>
<script>
async function initMap() {
const position = { lat: 17.6868, lng: 83.2185 }; // Visakhapatnam
const { Map } = await google.maps.importLibrary("maps");
const map = new Map(document.getElementById("map"), {
center: position,
zoom: 10, // <-- Set initial zoom to city level
mapId: "DEMO_MAP_ID",
mapTypeId: 'roadmap'
});
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap&v=weekly" async defer></script>
</body>
</html>

Expected Output: A map centered on Visakhapatnam, zoomed in enough to see the general layout of the city and major roads.

Example: Setting Initial Zoom to Street Level (15)

Section titled “Example: Setting Initial Zoom to Street Level (15)”
<!DOCTYPE html>
<!-- ... head ... -->
<body>
<div id="map"></div>
<script>
async function initMap() {
const position = { lat: 17.6868, lng: 83.2185 }; // Visakhapatnam
const { Map } = await google.maps.importLibrary("maps");
const map = new Map(document.getElementById("map"), {
center: position,
zoom: 15, // <-- Set initial zoom to street level
mapId: "DEMO_MAP_ID",
mapTypeId: 'roadmap'
});
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap&v=weekly" async defer></script>
</body>
</html>

Expected Output: The map is now zoomed in much closer, showing individual streets and smaller landmarks clearly.

You can change the zoom level after the map is loaded using the setZoom() method of the Map object.

// Assuming 'map' is your Map instance
// Zoom in closer
map.setZoom(17);
// Zoom out
// map.setZoom(12);

This is often used in response to user actions (like clicking a button) or events.

To find out the current zoom level, use the getZoom() method.

const currentZoom = map.getZoom();
console.log("Current zoom level:", currentZoom);

This is useful if you need to make decisions based on how zoomed in the user is, or if you listen to the zoom_changed event.

Imagine adding custom buttons to control zoom:

<!-- HTML -->
<button id="zoomInBtn">Zoom In</button>
<button id="zoomOutBtn">Zoom Out</button>
<div id="map"></div>
<script>
let map;
async function initMap() {
// ... (map initialization) ...
map = new Map(document.getElementById("map"), { /* ... options ... */ });
document.getElementById('zoomInBtn').addEventListener('click', () => {
const currentZoom = map.getZoom();
if (currentZoom < 21) { // Check max zoom if desired
map.setZoom(currentZoom + 1);
}
});
document.getElementById('zoomOutBtn').addEventListener('click', () => {
const currentZoom = map.getZoom();
if (currentZoom > 1) { // Check min zoom if desired
map.setZoom(currentZoom - 1);
}
});
// Listen for zoom changes triggered by any means (buttons, scroll, controls)
map.addListener('zoom_changed', () => {
console.log('Zoom changed to:', map.getZoom());
});
}
</script>
<!-- API Script Load -->

This shows how setZoom() and getZoom() can be used with UI elements and event listeners.