Introduction
This tutorial shows you how to add a simple Google map with a marker to a web page. It suits people with beginner or intermediate knowledge of HTML and CSS, and a little knowledge of JavaScript. For an advanced guide to creating maps, read the developer's guide.
Below is the map you'll create using this tutorial. The marker is positioned at Uluru (also known as Ayers Rock) in the Uluru-Kata Tjuta National Park.
The section below displays the entire code you need to create the map in this tutorial.
// Initialize and add the map function initMap() { // The location of Uluru var uluru = {lat: -25.344, lng: 131.036}; // The map, centered at Uluru var map = new google.maps.Map( document.getElementById('map'), {zoom: 4, center: uluru}); // The marker, positioned at Uluru var marker = new google.maps.Marker({position: uluru, map: map}); }
<h3>My Google Maps Demo</h3> <!--The div element for the map --> <div id="map"></div>
/* Set the size of the div element that contains the map */ #map { height: 400px; /* The height is 400 pixels */ width: 100%; /* The width is the width of the web page */ }
<!-- Replace the value of the key parameter with your own API key. --> <script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&callback=initMap"> </script>
Try it yourself
You can experiment with this code in JSFiddle by clicking the <>
icon in the
top-right corner of the code window.
<!DOCTYPE html>
<html>
<head>
<style>
/* Set the size of the div element that contains the map */
#map {
height: 400px; /* The height is 400 pixels */
width: 100%; /* The width is the width of the web page */
}
</style>
</head>
<body>
<h3>My Google Maps Demo</h3>
<!--The div element for the map -->
<div id="map"></div>
<script>
// Initialize and add the map
function initMap() {
// The location of Uluru
var uluru = {lat: -25.344, lng: 131.036};
// The map, centered at Uluru
var map = new google.maps.Map(
document.getElementById('map'), {zoom: 4, center: uluru});
// The marker, positioned at Uluru
var marker = new google.maps.Marker({position: uluru, map: map});
}
</script>
<!--Load the API from the specified URL
* The async attribute allows the browser to render the page while the API loads
* The key parameter will contain your own API key (which is not needed for this tutorial)
* The callback parameter executes the initMap() function
-->
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>
</body>
</html>
Getting started
There are three steps to creating a Google map with a marker on your web page:
You need a web browser. Choose a well-known one like Google Chrome (recommended), Firefox, Safari or Internet Explorer, based on your platform.
Step 1: Create an HTML page
Here's the code for a basic HTML web page:
<h3>My Google Maps Demo</h3> <!--The div element for the map --> <div id="map"></div>
#map { width: 100%; height: 400px; background-color: grey; }
<!DOCTYPE html> <html> <head> <style> #map { width: 100%; height: 400px; background-color: grey; } </style> </head> <body> <h3>My Google Maps Demo</h3> <!--The div element for the map --> <div id="map"></div> </body> </html>
Note that this is a very basic page with a heading level three (h3
), a single
div
element, and a style
element. You can add any content you like to the
web page.
Try it yourself
At the top right corner of the sample code above are three buttons. Click the left-most button to open the sample in JSFiddle.
Understanding the code
The code below creates an HTML page consisting of a head and a body.
<html> <head> </head> <body> </body> </html>
You can add a heading level three above the map using the code below.
<h3>My Google Maps Demo</h3>
The code below defines an area of the page for your Google map.
<div id="map"></div>
At this stage of the tutorial, the div
appears as just a grey
block, because you have not yet added a map. The code below describes the CSS
that sets the size and color of the div
.
<style> #map { width: 100%; height: 400px; background-color: grey; } </style>
In the above code, the style
element sets the div
size
for your map.
Set the div
width and height to greater than 0px for the map to be
visible. In this case, the div
is set to a height of 400 pixels,
and width of 100% to display the across the width of your web page. Apply
background-color: grey
to the div
to view the area for
your map on the web page.
Step 2: Add a map with a marker
This section shows you how to load the Maps JavaScript API into your web page, and how to write your own JavaScript that uses the API to add a map with a marker on it.
// Initialize and add the map function initMap() { // The location of Uluru var uluru = {lat: -25.344, lng: 131.036}; // The map, centered at Uluru var map = new google.maps.Map( document.getElementById('map'), {zoom: 4, center: uluru}); // The marker, positioned at Uluru var marker = new google.maps.Marker({position: uluru, map: map}); }
<h3>My Google Maps Demo</h3> <!--The div element for the map --> <div id="map"></div>
/* Set the size of the div element that contains the map */ #map { height: 400px; /* The height is 400 pixels */ width: 100%; /* The width is the width of the web page */ }
<!-- Replace the value of the key parameter with your own API key. --> <script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&callback=initMap"> </script>
<!DOCTYPE html>
<html>
<head>
<style>
/* Set the size of the div element that contains the map */
#map {
height: 400px; /* The height is 400 pixels */
width: 100%; /* The width is the width of the web page */
}
</style>
</head>
<body>
<h3>My Google Maps Demo</h3>
<!--The div element for the map -->
<div id="map"></div>
<script>
// Initialize and add the map
function initMap() {
// The location of Uluru
var uluru = {lat: -25.344, lng: 131.036};
// The map, centered at Uluru
var map = new google.maps.Map(
document.getElementById('map'), {zoom: 4, center: uluru});
// The marker, positioned at Uluru
var marker = new google.maps.Marker({position: uluru, map: map});
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>
</body>
</html>
Try it yourself
At the top right corner of the sample code above are three buttons. Click the left-most button to open the sample in JSFiddle.
Understanding the code
Notice that the above sample no longer contains the CSS that colors the
div
grey. This is because the div
now contains a map.
In the code below, the script
loads the API from the specified URL.
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>
In the above code, the callback
parameter executes the
initMap
function after the API loads. The async
attribute allows the browser to continue rendering the rest of your page while
the API loads. The key
parameter contains your API key. You don't
need your own API key when experimenting with this tutorial
in JSFiddle.
See Step 3: Get an API key for instructions on getting your
own API key later.
The code below contains the initMap
function that initializes and
adds the map when the web page loads. Use a script
tag to include
your own JavaScript which contains the initMap
function.
<script> function initMap() { } </script>
Add the getElementById()
function to find the map div
on the web page.
The code below constructs a new Google maps object, and adds properties to the map including the center and zoom level. See the documentation for other property options.
{ var uluru = {lat: -25.344, lng: 131.036}; var map = new google.maps.Map(document.getElementById('map'), { zoom: 4, center: uluru }); }
In the above code, new google.maps.Map()
creates a new Google maps
object. The center
property tells the API where to
center the map. The map coordinates are set in the order:
latitude, longitude.
Learn more about
getting latitude/longitude coordinates, or converting an
address into geographical coordinates.
The zoom
property specifies the zoom level for the map.
Zoom: 0 is the lowest zoom, and displays the entire earth.
Set the zoom value higher to zoom in to the earth at higher resolutions.
The code below puts a marker on the map. The position
property sets
the position of the marker.
var marker = new google.maps.Marker({ position: uluru, map: map });
Step 3: Get an API key
This section explains how to authenticate your app to the Maps JavaScript API using your own API key.
Follow these steps to get an API key:
Go to the Google Cloud Platform Console.
Create or select a project.
Click Continue to enable the API and any related services.
On the Credentials page, get an API key (and set the API key restrictions). Note: If you have an existing unrestricted API key, or a key with browser restrictions, you may use that key.
To prevent quota theft and secure your API key, see Using API Keys.
(Optional) Enable billing. See Usage Limits for more information.
Copy the entire code of this tutorial from this page, to your text editor. If you don't already have a text editor, here are some recommendations: You can use: Notepad++ (for Windows); TextEdit (for macOS); gedit, KWrite, among others (for Linux machines).
Replace the value of the
key
parameter in the URL with your own API key (that's the API key that you've just obtained).<script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"> </script>
Save this file with a name that ends with .html, like google-maps.html.
Load the HTML file in a web browser by dragging it from your desktop onto your browser. Alternatively, double-clicking the file works on most operating systems.
Tips and troubleshooting
- Use the JSFiddle interface to display HTML, CSS and JavaScript code in separate panes. You can run the code and display output in the Results pane.
- You can tweak options like style and properties to customize the map. For more information on customizing maps, read the guides to styling, and drawing on the map.
- Use the Developer Tools Console in your web browser to test and run your code, read error reports and solve problems with your code.
- Use the following keyboard shortcuts to open the console in Chrome:
Command+Option+J (on Mac), or Control+Shift+J (on Windows). Follow the steps below to get the latitude and longitude coordinates for a location on Google Maps.
- Open Google Maps in a browser.
- Right-click the exact location on the map for which you require coordinates.
- Select What's here from the context menu that appears. The map displays a card at the bottom of the screen. Find the latitude and longitude coordinates in the last row of the card.
You can convert an address into latitude and longitude coordinates using the Geocoding service. The developer guides provide detailed information on getting started with the Geocoding service.