Showing Elevation Along a Path
Sample code for Google Maps Platform JavaScript API
author(s):
Justin Poehnelt
HTML
<!doctype html>
<!--
@license
Copyright 2019 Google LLC. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
-->
<html>
<head>
<title>Showing Elevation Along a Path</title>
<script src="https://www.google.com/jsapi"></script>
<!-- jsFiddle will insert css and js -->
</head>
<body>
<div>
<div id="map" style="height: 250px"></div>
<div id="elevation_chart"></div>
</div>
<!--
The `defer` attribute causes the script to execute after the full HTML
document has been parsed. For non-blocking uses, avoiding race conditions,
and consistent behavior across browsers, consider loading using Promises. See
https://developers.google.com/maps/documentation/javascript/load-maps-js-api
for more information.
-->
<script
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg&callback=initMap&v=weekly"
defer
></script>
</body>
</html>
CSS
/**
* @license
* Copyright 2019 Google LLC. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0
*/
/*
* 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;
}
JavaScript
/**
* @license
* Copyright 2019 Google LLC. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0
*/
// Load the Visualization API and the columnchart package.
// @ts-ignore TODO update to newest visualization library
google.load("visualization", "1", { packages: ["columnchart"] });
function initMap() {
// The following path marks a path from Mt. Whitney, the highest point in the
// continental United States to Badwater, Death Valley, the lowest point.
const path = [
{ lat: 36.579, lng: -118.292 }, // Mt. Whitney
{ lat: 36.606, lng: -118.0638 }, // Lone Pine
{ lat: 36.433, lng: -117.951 }, // Owens Lake
{ lat: 36.588, lng: -116.943 }, // Beatty Junction
{ lat: 36.34, lng: -117.468 }, // Panama Mint Springs
{ lat: 36.24, lng: -116.832 },
]; // Badwater, Death Valley
const map = new google.maps.Map(document.getElementById("map"), {
zoom: 8,
center: path[1],
mapTypeId: "terrain",
});
// Create an ElevationService.
const elevator = new google.maps.ElevationService();
// Draw the path, using the Visualization API and the Elevation service.
displayPathElevation(path, elevator, map);
}
function displayPathElevation(path, elevator, map) {
// Display a polyline of the elevation path.
new google.maps.Polyline({
path: path,
strokeColor: "#0000CC",
strokeOpacity: 0.4,
map: map,
});
// Create a PathElevationRequest object using this array.
// Ask for 256 samples along that path.
// Initiate the path request.
elevator
.getElevationAlongPath({
path: path,
samples: 256,
})
.then(plotElevation)
.catch((e) => {
const chartDiv = document.getElementById("elevation_chart");
// Show the error code inside the chartDiv.
chartDiv.innerHTML = "Cannot show elevation: request failed because " + e;
});
}
// Takes an array of ElevationResult objects, draws the path on the map
// and plots the elevation profile on a Visualization API...