I managed to create custom zoom and zoom buttons outside the map:
<!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <style type="text/css"> html { height: 100% } body { height: 100%; margin: 0; padding: 0 } #map-canvas { height: 60%; width:60%; margin:20px auto; border:1px solid; padding-left:100px; } </style> <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=ADD-YOUR-API-KEY-HERE&sensor=false®ion=AU"> </script> <script type="text/javascript"> function HomeControl(controlDiv, map) { google.maps.event.addDomListener(zoomout, 'click', function() { var currentZoomLevel = map.getZoom(); if(currentZoomLevel != 0){ map.setZoom(currentZoomLevel - 1);} }); google.maps.event.addDomListener(zoomin, 'click', function() { var currentZoomLevel = map.getZoom(); if(currentZoomLevel != 21){ map.setZoom(currentZoomLevel + 1);} }); } var map; function initialize() { var mapDiv = document.getElementById('map-canvas'); var mapOptions = { zoom: 15, center: new google.maps.LatLng(-33.90224, 151.20215), panControl: false, zoomControl: false, streetViewControl: false, overviewMapControl: false, mapTypeControl: false, mapTypeControl: false, mapTypeId: google.maps.MapTypeId.ROADMAP } map = new google.maps.Map(mapDiv, mapOptions); </script> </head> <body> <div id="map-canvas"></div> <div id="zoomout" style="border:1px solid; width:150px; heoght:50px; cursor:pointer; margin-bottom:20px;">ZOOM ME OUT</div> <div id="zoomin" style="border:1px solid; width:150px; heoght:50px;cursor:pointer;">ZOOM ME IN</div> </body> </html>
source share