Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <title>Directions service with autocomplete</title>
    <style>
      html, body, #map-canvas {
        height: 100%;
        margin: 0px;
        padding: 0px
      }
    </style>
    <script src="https://maps.googleapis.com/maps/api/js?v=3&libraries=places&signed_in=true"></script>
    <script>
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var map;
var glasgow = new google.maps.LatLng(55.858375, -4.258346); 
var placeId1, placeId2;      
function initialize() {
  directionsDisplay = new google.maps.DirectionsRenderer({
    draggable: true
  });
  var mapOptions = {
    zoom:10,
    center: glasgow
  };
  map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
  directionsDisplay.setMap(map);
  
  var inputFrom = document.getElementById('from');
  var autocompleteFrom = new google.maps.places.Autocomplete(inputFrom, {});
  autocompleteFrom.bindTo('bounds', map);
  autocompleteFrom.addListener('place_changed', function() {
      var place = autocompleteFrom.getPlace();
      placeId1 = place.place_id;
  });
  
  var inputTo = document.getElementById('to');
  var autocompleteTo = new google.maps.places.Autocomplete(inputTo, {});
  autocompleteTo.bindTo('bounds', map);
  autocompleteTo.addListener('place_changed', function() {
      var place = autocompleteTo.getPlace();
      placeId2 = place.place_id;
  });
  
}
function calcRoute() {
  if (!placeId1) {
    alert("Please select origin");
    return;
  }
  if (!placeId2) {
    alert("Please select destination");
    return;
  }
  var start = {
     placeId: placeId1
  };
  var end = {
     placeId: placeId2
  };
  var request = {
      origin: start,
      destination:end,
      travelMode: google.maps.TravelMode.DRIVING,
      provideRouteAlternatives: false
  };
  directionsService.route(request, function(response, status) {
    if (status == google.maps.DirectionsStatus.OK) {
      directionsDisplay.setDirections(response);
    }
  });
}
google.maps.event.addDomListener(window, 'load', initialize);
    </script>
  </head>
  <body>
    <input type="text" name="from" id="from" placeholder="Select origin" />
    <input type="text" name="to" id="to" placeholder="Select destination" />
    <input type="button" name="calcroute" value="Get route" onclick="calcRoute();return false;" />
    <div id="map-canvas"></div>
  
 
</body>
</html>
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
andreyh13pro
0viewers