Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $origin_lat = $_REQUEST['origin_lat'];
- $origin_long = $_REQUEST['origin_long'];
- $destination_lat = $_REQUEST['destination_lat'];
- $destination_long = $_REQUEST['destination_long'];
- $zoom = (empty($_REQUEST['zoom']) ? '17' : $_REQUEST['zoom']); // 1 to 22
- $mode = (empty($_REQUEST['mode']) ? 'DRIVING' : $_REQUEST['mode']); // 1 to 22
- ?>
- <!DOCTYPE html>
- <html>
- <head>
- <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
- <meta charset="utf-8">
- <title>Displaying Text Directions With setPanel()</title>
- <style>
- /* 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;
- }
- #floating-panel {
- position: absolute;
- top: 10px;
- left: 25%;
- z-index: 5;
- background-color: #fff;
- padding: 5px;
- border: 1px solid #999;
- text-align: center;
- font-family: 'Roboto','sans-serif';
- line-height: 30px;
- padding-left: 10px;
- }
- #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;
- }
- #right-panel {
- height: 100%;
- float: right;
- width: 390px;
- overflow: auto;
- }
- #map {
- margin-right: 400px;
- }
- #floating-panel {
- background: #fff;
- padding: 5px;
- font-size: 14px;
- font-family: Arial;
- border: 1px solid #ccc;
- box-shadow: 0 2px 2px rgba(33, 33, 33, 0.4);
- display: none;
- }
- @media print {
- #map {
- height: 500px;
- margin: 0;
- }
- #right-panel {
- float: none;
- width: auto;
- }
- }
- </style>
- </head>
- <body>
- <div id="floating-panel">
- <b>Mode of Travel: </b>
- <select id="mode">
- <option <?php echo ($mode=="DRIVING" ? 'selected' : '' ) ?> value="DRIVING">Driving</option>
- <option <?php echo ($mode=="WALKING" ? 'selected' : '' ) ?> value="WALKING">Walking</option>
- <option <?php echo ($mode=="BICYCLING" ? 'selected' : '' ) ?> value="BICYCLING">Bicycling</option>
- <option <?php echo ($mode=="TRANSIT" ? 'selected' : '' ) ?> value="TRANSIT">Transit</option>
- </select>
- </div>
- <div id="right-panel"></div>
- <div id="map"></div>
- <script>
- function initMap() {
- var directionsDisplay = new google.maps.DirectionsRenderer;
- var directionsService = new google.maps.DirectionsService;
- var map = new google.maps.Map(document.getElementById('map'), {
- zoom: <?php echo $zoom ?>,
- center: {lat: <?php echo $origin_lat ?>, lng: <?php echo $origin_long ?>}
- });
- directionsDisplay.setMap(map);
- directionsDisplay.setPanel(document.getElementById('right-panel'));
- var control = document.getElementById('floating-panel');
- control.style.display = 'block';
- map.controls[google.maps.ControlPosition.TOP_CENTER].push(control);
- calculateAndDisplayRoute(directionsService, directionsDisplay);
- document.getElementById('mode').addEventListener('change', function() {
- calculateAndDisplayRoute(directionsService, directionsDisplay);
- });
- }
- function calculateAndDisplayRoute(directionsService, directionsDisplay) {
- var selectedMode = document.getElementById('mode').value;
- var start = {lat: <?php echo $origin_lat ?>, lng: <?php echo $origin_long ?>};
- var end = {lat: <?php echo $destination_lat ?>, lng: <?php echo $destination_long ?>};
- directionsService.route({
- origin: start,
- destination: end,
- travelMode: google.maps.TravelMode[selectedMode]
- }, function(response, status) {
- if (status === 'OK') {
- directionsDisplay.setDirections(response);
- } else {
- window.alert('Directions request failed due to ' + status);
- }
- });
- }
- </script>
- <script async defer
- src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement