Widget:GTform

From Transit.Wiki
Revision as of 00:18, 6 June 2013 by Andy (talk | contribs)
     <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
   <script>
     var directions = new google.maps.DirectionsService();
     var renderer = new google.maps.DirectionsRenderer();
     var map, transitLayer;
     function initialize() {
       var mapOptions = {
         zoom: 5,
         center: new google.maps.LatLng(38.6, -114.6),
         mapTypeId: google.maps.MapTypeId.ROADMAP
       };
       map = new google.maps.Map(document.getElementById('map'), mapOptions);
       google.maps.event.addDomListener(document.getElementById('go'), 'click',
       route);
       transitLayer = new google.maps.TransitLayer();
       var control = document.getElementById('transit-wpr');
       google.maps.event.addDomListener(control, 'click', function() {
         transitLayer.setMap(transitLayer.getMap() ? null : map);
       });
       addDepart();
       route();
     }
     function addDepart() {
       var depart = document.getElementById('depart');
       for (var i = 0; i < 24; i++) {
         for (var j = 0; j < 60; j += 15) {
         var x = i < 10 ? '0' + i : i;
         var y = j < 10 ? '0' + j : j;
         depart.innerHTML += '<option>' + x + ':' + y + '</option>';
       }
       }
     }
     function route() {
       var departure = document.getElementById('depart').value;
       var bits = departure.split(':');
       var now = new Date();
       var tzOffset = (now.getTimezoneOffset() + 60) * 60 * 1000;
       var time = new Date();
       time.setHours(bits[0]);
       time.setMinutes(bits[1]);
       var ms = time.getTime();
       if (ms < now.getTime()) {
         ms += 24 * 60 * 60 * 1000;
       }
       var departureTime = new Date(ms);
       var request = {
         origin: document.getElementById('from').value,
         destination: document.getElementById('to').value,
         travelMode: google.maps.DirectionsTravelMode.TRANSIT,
         provideRouteAlternatives: true,
         transitOptions: {
           departureTime: departureTime
         }
       };
       var panel = document.getElementById('panel');
       panel.innerHTML = ;
       directions.route(request, function(response, status) {
         if (status == google.maps.DirectionsStatus.OK) {
           renderer.setDirections(response);
           renderer.setMap(map);
           renderer.setPanel(panel);
         } else {
           renderer.setMap(null);
           renderer.setPanel(null);
         }
       });
     }
     google.maps.event.addDomListener(window, 'load', initialize);
   </script>

Transit directions

         <label>from:</label>
         <input class="input" id="from" value="">

<label>to:</label> <input class="input" id="to" value="">

Depart at <select id="depart"></select>
         <button id="go">Get Directions</button>