-
Notifications
You must be signed in to change notification settings - Fork 79
/
canada-trip.html
114 lines (104 loc) · 4.01 KB
/
canada-trip.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta name="description" content="Randy Olson uses machine learning to find the optimal road trip across Canada.">
<meta name="author" content="Randal S. Olson">
<title>An optimal road trip across Canada according to machine learning</title>
<style>
html, body, #map-canvas {
height: 100%;
margin: 0px;
padding: 0px
}
#panel {
position: absolute;
top: 5px;
left: 50%;
margin-left: -180px;
z-index: 5;
background-color: #fff;
padding: 10px;
border: 1px solid #999;
}
</style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true"></script>
<script>
var directionsDisplay1, directionsDisplay2;
var directionsDisplay3, directionsDisplay4;
var markerOptions = {icon: "http://maps.gstatic.com/mapfiles/markers2/marker.png"};
var directionsDisplayOptions = {preserveViewport: true,
markerOptions: markerOptions};
var directionsService = new google.maps.DirectionsService();
var map;
function initialize() {
var center = new google.maps.LatLng(50, -93);
var mapOptions = {
zoom: 4,
center: center
};
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
directionsDisplay1.setMap(map);
directionsDisplay2.setMap(map);
directionsDisplay3.setMap(map);
directionsDisplay4.setMap(map);
}
function calcRoute(start, end, routes) {
switch (start) {
case "Whitehorse, YT, Canada":
directionsDisplay1 = new google.maps.DirectionsRenderer(directionsDisplayOptions);
break;
case "Glendon, AB, Canada":
directionsDisplay2 = new google.maps.DirectionsRenderer(directionsDisplayOptions);
break;
case "Chesley, ON, Canada":
directionsDisplay3 = new google.maps.DirectionsRenderer(directionsDisplayOptions);
break;
case "Aulds Cove, NS, Canada":
directionsDisplay4 = new google.maps.DirectionsRenderer(directionsDisplayOptions);
break;
}
var waypts = [];
for (var i = 0; i < routes.length; i++) {
waypts.push({
location:routes[i],
stopover:true});
}
var request = {
origin: start,
destination: end,
waypoints: waypts,
optimizeWaypoints: false,
travelMode: google.maps.TravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
switch (start) {
case "Whitehorse, YT, Canada":
directionsDisplay1.setDirections(response);
break;
case "Glendon, AB, Canada":
directionsDisplay2.setDirections(response);
break;
case "Chesley, ON, Canada":
directionsDisplay3.setDirections(response);
break;
case "Aulds Cove, NS, Canada":
directionsDisplay4.setDirections(response);
break;
}
}
});
}
google.maps.event.addDomListener(window, 'load', initialize);
calcRoute("Whitehorse, YT, Canada", "Glendon, AB, Canada", ["Hay River, NT, Canada", "Beaverlodge, AB, Canada", "New Westminster, BC, Canada", "Duncan, BC, Canada", "Penticton, BC, Canada", "Drumheller, AB, Canada", "Edmonton, AB, Canada", "Vegreville, AB, Canada"]);
calcRoute("Glendon, AB, Canada", "Chesley, ON, Canada", ["Moose Jaw, SK, Canada", "Swan River, MB, Canada", "Roland, MB, Canada", "Wawa, ON, Canada", "Echo Bay, ON, Canada", "Sudbury, ON, Canada", "Earlton, ON, Canada", "Barrie, ON, Canada"]);
calcRoute("Chesley, ON, Canada", "Aulds Cove, NS, Canada", ["St Thomas, ON, Canada", "Campbellford, ON, Canada", "Ottawa, ON, Canada", "Montreal, QC, Canada", "Campbellton, NB, Canada", "Nackawic, NB, Canada", "Shediac, NB, Canada", "O'Leary, PE, Canada"]);
calcRoute("Aulds Cove, NS, Canada", "Glovers Harbour Rd, Leading Tickles, NL A0H 1T0, Canada", []);
</script>
</head>
<body>
<div id="map-canvas"></div>
</body>
</html>