Difference between revisions of "Widget:GTform"
(Created page with "<form action="http://www.google.com/transit"> <input type="hidden" name="ie" value="UTF8"> <input type="hidden" name="f" value="d"> Start adress <input type="text" style="widt...") |
m |
||
Line 1: | Line 1: | ||
− | < | + | <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> | ||
+ | <div id="info"> | ||
+ | <div> | ||
+ | <h2>Transit directions</h2> | ||
+ | </div> | ||
+ | <div> | ||
+ | <label>from:</label> | ||
+ | <input class="input" id="from" value=""> | ||
+ | </div> | ||
+ | <div> | ||
+ | <label>to:</label> | ||
+ | <input class="input" id="to" value=""> | ||
+ | </div> | ||
+ | <div>Depart at <select id="depart"></select></div> | ||
+ | <div class="btn"> | ||
+ | <button id="go">Get Directions</button> | ||
+ | </div> | ||
+ | </div> | ||
+ | <div id="transit-wpr"> | ||
+ | </div> | ||
+ | <div id="map" style="border: 1px solid black; position:absolute; width:398px; height:398px"></div> | ||
+ | <div id="panel-wpr" style="position:absolute; left: 410px; width:240px; height:400px; overflow: auto"> | ||
+ | |||
+ | <div id="panel"></div> | ||
+ | </div> |
Revision as of 00:18, 6 June 2013
<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>