"PFA_googledirecctionsTest1"
Bootstrap 4.0.0 Snippet by Elfannir

<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <!------ Include the above in your HEAD tag ----------> <!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <meta charset="utf-8"> <title>Waypoints in directions</title> <style> #right-panel { font-family: 'Roboto','sans-serif'; line-height: 30px; padding-left: 10px; } #right-panel select, #right-panel input { font-size: 15px; } #right-panel select { width: 100%; } #right-panel i { font-size: 12px; } html, body { height: 100%; margin: 0; padding: 0; } #map { height: 100%; float: left; width: 70%; height: 100%; } #right-panel { margin: 20px; border-width: 2px; width: 20%; height: 400px; float: left; text-align: left; padding-top: 0; } #directions-panel { margin-top: 10px; background-color: #FFEE77; padding: 10px; } </style> </head> <body> <div id="map"></div> <div id="right-panel"> <div> <b>Start:</b> <select id="start"> <option value="34.6835058,-1.9558836">location 1</option> <option value="34.693251,-1.915324">location 2</option> <option value="34.682283,-1.916200">location 3</option> <option value="34.685623,-1.919117">location 4</option> </select> <br> <b>Waypoints:</b> <br> <i>(Ctrl+Click or Cmd+Click for multiple selection)</i> <br> <select multiple id="waypoints"> <option value="34.682122,-1.910858">Itiniraire 1</option> <option value="34.678557,-1.911588">Itiniraire 1</option> </select> <br> <b>End:</b> <select id="end"> <option value="34.6835058,-1.9558836">location 1</option> <option value="34.693251,-1.915324">location 2</option> <option value="34.682283,-1.916200">location 3</option> <option value="34.685623,-1.919117">location 4</option> </select> <br> <input type="submit" id="submit"> </div> <div id="directions-panel"></div> </div> <script> function initMap() { var directionsService = new google.maps.DirectionsService; var directionsDisplay = new google.maps.DirectionsRenderer; var map = new google.maps.Map(document.getElementById('map'), { zoom: 18, center: {lat: 34.698799, lng: -1.904047} }); directionsDisplay.setMap(map); document.getElementById('submit').addEventListener('click', function() { calculateAndDisplayRoute(directionsService, directionsDisplay); }); } function calculateAndDisplayRoute(directionsService, directionsDisplay) { var waypts = []; var checkboxArray = document.getElementById('waypoints'); for (var i = 0; i < checkboxArray.length; i++) { if (checkboxArray.options[i].selected) { waypts.push({ location: checkboxArray[i].value, stopover: true }); } } directionsService.route({ origin: document.getElementById('start').value, destination: document.getElementById('end').value, waypoints: waypts, optimizeWaypoints: true, travelMode: 'WALKING' }, function(response, status) { if (status === 'OK') { directionsDisplay.setDirections(response); var route = response.routes[0]; var summaryPanel = document.getElementById('directions-panel'); summaryPanel.innerHTML = ''; // For each route, display summary information. for (var i = 0; i < route.legs.length; i++) { var routeSegment = i + 1; summaryPanel.innerHTML += '<b>Route Segment: ' + routeSegment + '</b><br>'; summaryPanel.innerHTML += route.legs[i].start_address + ' to '; summaryPanel.innerHTML += route.legs[i].end_address + '<br>'; summaryPanel.innerHTML += route.legs[i].duration.text + '<br>'; summaryPanel.innerHTML += route.legs[i].distance.text + '<br><br>'; } } else { window.alert('Directions request failed due to ' + status); } }); } </script> <script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDRGDqwSFzvexYHsPZ6DLe8Om4_CatGTig&callback=initMap"> </script> </body> </html>

Related: See More


Questions / Comments: