forked from rhiever/optimal-roadtrip-usa
-
Notifications
You must be signed in to change notification settings - Fork 0
/
europe-trip.html
124 lines (113 loc) · 4.63 KB
/
europe-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
115
116
117
118
119
120
121
122
123
124
<!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 Europe.">
<meta name="author" content="Randal S. Olson">
<title>An optimal road trip across Europe 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 directionsDisplay5;
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(55.5, 13);
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);
directionsDisplay5.setMap(map);
}
function calcRoute(start, end, routes) {
switch (start) {
case "Innsbruck, Austria":
directionsDisplay1 = new google.maps.DirectionsRenderer(directionsDisplayOptions);
break;
case "Gozo, Malta":
directionsDisplay2 = new google.maps.DirectionsRenderer(directionsDisplayOptions);
break;
case "Krakow, Poland":
directionsDisplay3 = new google.maps.DirectionsRenderer(directionsDisplayOptions);
break;
case "Edinburgh, United Kingdom":
directionsDisplay4 = new google.maps.DirectionsRenderer(directionsDisplayOptions);
break;
case "Pamplona, Spain":
directionsDisplay5 = 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 "Innsbruck, Austria":
directionsDisplay1.setDirections(response);
break;
case "Gozo, Malta":
directionsDisplay2.setDirections(response);
break;
case "Krakow, Poland":
directionsDisplay3.setDirections(response);
break;
case "Edinburgh, United Kingdom":
directionsDisplay4.setDirections(response);
break;
case "Pamplona, Spain":
directionsDisplay5.setDirections(response);
break;
}
}
});
}
google.maps.event.addDomListener(window, 'load', initialize);
calcRoute("Innsbruck, Austria", "Gozo, Malta", ["Munich, Germany", "Pag, Croatia", "Venice, Italy", "Tuscany, Italy", "Florence, Italy", "Rome, Italy", "Vatican City", "Amalfi, Italy"]);
calcRoute("Gozo, Malta", "Krakow, Poland", ["Dubrovnik, Croatia", "Santorini, Thira, Greece", "Rila Monastery, Rilski manastir, Bulgaria", "Istanbul, Turkey", "Sighisoara, Mures County, Romania", "Budapest, Hungary", "Vienna, Austria", "Prague, Czech Republic"]);
calcRoute("Krakow, Poland", "Edinburgh, United Kingdom", ["Jägala, 74205 Harjumaa, Estonia", "Lapland, Finland", "ICEBAR, Marknadsvägen, Jukkasjärvi, Sweden", "Bergen, Norway", "Copenhagen, Denmark", "Berlin, Germany", "Amsterdam, Netherlands", "Keukenhof, Stationsweg, Lisse, Netherlands"]);
calcRoute("Edinburgh, United Kingdom", "Pamplona, Spain", ["Inverness, United Kingdom", "Ballybunion, Ireland", "Cliffs of Moher, Clare, Ireland", "Cornwall, England", "Stonehenge, Amesbury, United Kingdom", "London, United Kingdom", "Brussels, Belgium", "Paris, France"]);
calcRoute("Pamplona, Spain", "Innsbruck, Austria", ["Lagos, Portugal", "Granada, Spain", "Ibiza, Spain", "Barcelona, Spain", "Luberone, Bonnieux, France", "Nice, France", "Monte Carlo, Monaco", "Interlaken, Switzerland"]);
</script>
</head>
<body>
<div id="map-canvas"></div>
</body>
</html>