This example uses the cooperative
value for the
gestureHandling
option to control the panning and scrolling
behavior of a map when viewed on a mobile device.
Read the documentation.
TypeScript
/** * This sample sets the gesture handling mode to 'cooperative', * which means that on a mobile device, the user must swipe with one * finger to scroll the page and two fingers to pan the map. */ function initMap(): void { const center = { lat: -25.363, lng: 131.044 }; const zoom = 4; new google.maps.Map(document.getElementById("map")!, { zoom, center, gestureHandling: "cooperative", }); }
JavaScript
/** * This sample sets the gesture handling mode to 'cooperative', * which means that on a mobile device, the user must swipe with one * finger to scroll the page and two fingers to pan the map. */ function initMap() { const center = { lat: -25.363, lng: 131.044 }; const zoom = 4; new google.maps.Map(document.getElementById("map"), { zoom, center, gestureHandling: "cooperative", }); }
CSS
/* Always set the map height explicitly to define the size of the div * element that contains the map. */ #map { height: 100%; } /* Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }
HTML
<!DOCTYPE html> <html> <head> <title>Cooperative Gesture Handling</title> <script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script> <link rel="stylesheet" type="text/css" href="./style.css" /> <script src="./index.js"></script> </head> <body> <div id="map"></div> <!-- Async script executes immediately and must be after any DOM elements used in callback. --> <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap&libraries=&v=weekly" async ></script> </body> </html>
All
<!DOCTYPE html> <html> <head> <title>Cooperative Gesture Handling</title> <script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script> <style type="text/css"> /* Always set the map height explicitly to define the size of the div * element that contains the map. */ #map { height: 100%; } /* Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; } </style> <script> /** * This sample sets the gesture handling mode to 'cooperative', * which means that on a mobile device, the user must swipe with one * finger to scroll the page and two fingers to pan the map. */ function initMap() { const center = { lat: -25.363, lng: 131.044 }; const zoom = 4; new google.maps.Map(document.getElementById("map"), { zoom, center, gestureHandling: "cooperative", }); } </script> </head> <body> <div id="map"></div> <!-- Async script executes immediately and must be after any DOM elements used in callback. --> <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap&libraries=&v=weekly" async ></script> </body> </html>
Create a starter application from sample
A skeleton starter application using TypeScript, Webpack, and Babel can be generated from this sample using one of the methods below.
Run Locally
Node.js is required to run this sample locally. Follow these instructions to install Node.js and NPM.
npx @googlemaps/js-samples init interaction-cooperative DESTINATION_FOLDER
Run in Google Cloud Shell
Google Cloud Shell is an interactive shell environment for Google Cloud Platform that makes it easy for you to learn and experiment with GCP and manage your projects and resources from your web browser.
Run in Cloud Shell