| 1 <html> |
1 <html> |
| 2 <head> |
2 <head> |
| 3 <link rel="icon" type="image/png" href="../static/favicon.png" /> |
3 <link rel="icon" type="image/png" href="../static/favicon.png" /> |
| 4 <link rel="stylesheet" type="text/css" href="../static/style.css" /> |
4 <link rel="stylesheet" type="text/css" href="../static/style.css" /> |
| 5 <meta charset='UTF-8' /> |
5 <meta charset='UTF-8' /> |
| 6 <meta http-equiv='refresh' content='60'> |
6 <!--<meta http-equiv='refresh' content='60'>--> |
| |
7 <link |
| |
8 rel="stylesheet" |
| |
9 href="https://unpkg.com/leaflet@1.3.4/dist/leaflet.css" |
| |
10 integrity="sha512-puBpdR0798OZvTTbP4A8Ix/l+A4dHDD0DGqYW6RQ+9jxkRFclaxxQb/SJAWZfWAkuyeQUytO7+7N4QKrDh+drA==" |
| |
11 crossorigin="" |
| |
12 /> |
| |
13 <script |
| |
14 src="https://unpkg.com/leaflet@1.3.4/dist/leaflet.js" |
| |
15 integrity="sha512-nMMmRyTVoLYqjP9hrbed9S+FzjZHW5gY1TWCHA5ckwXZBadntCNs8kEqAWdrb9O7rxbCaA4lKTIWjDXZxflOcA==" |
| |
16 crossorigin="" |
| |
17 ></script> |
| 7 <style> |
18 <style> |
| 8 .sarake-alue |
19 .sarake-alue |
| 9 { |
20 { |
| 10 text-align: left; |
21 text-align: left; |
| 11 } |
22 } |
| 78 <th class='sarake-alue'>Alue</th> |
97 <th class='sarake-alue'>Alue</th> |
| 79 <th class='sarake-matkapituus'>{{'%.1f' % length}}km</th> |
98 <th class='sarake-matkapituus'>{{'%.1f' % length}}km</th> |
| 80 </tr> |
99 </tr> |
| 81 </thead> |
100 </thead> |
| 82 <tbody> |
101 <tbody> |
| |
102 <tr> |
| |
103 <td colspan="9100"> |
| |
104 <div id="mapid"></div> |
| |
105 </td> |
| |
106 </tr> |
| |
107 </tbody> |
| |
108 <tbody> |
| 83 {% for entry in schedule %} |
109 {% for entry in schedule %} |
| 84 <tr> |
110 <tr> |
| 85 <td class='sarake-aika' style='vertical-align: top'>{{entry['time']}}</td> |
111 <td class='sarake-aika' style='vertical-align: top'>{{entry['time']}}</td> |
| 86 <td class='sarake-alue folded' id="region-schedule-{{entry['index']}}" colspan='2'> |
112 <td class='sarake-alue folded' id="region-schedule-{{entry['index']}}" colspan='2'> |
| 87 <a class="region-name" href="javascript:toggle_fold('region-schedule-{{entry['index']}}')">{{entry['name']}}</a> |
113 <a class="region-name" href="javascript:toggle_fold('region-schedule-{{entry['index']}}')">{{entry['name']}}</a> |
| 97 </td> |
123 </td> |
| 98 </tr> |
124 </tr> |
| 99 {% endfor %} |
125 {% endfor %} |
| 100 </tbody> |
126 </tbody> |
| 101 </table> |
127 </table> |
| |
128 <script> |
| |
129 function openBusStop(event) { |
| |
130 window.open(this.options._my_bus_stop_url); |
| |
131 } |
| |
132 var route = [{{shape}}]; |
| |
133 var mymap = L.map('mapid').setView([60.45175, 22.26705], 13); |
| |
134 var myIcon = L.icon({ |
| |
135 iconUrl: '/static/favicon.png', |
| |
136 iconSize: [16, 16], |
| |
137 iconAnchor: [8, 8], |
| |
138 popupAnchor: [-3, -76], |
| |
139 }); |
| |
140 L.tileLayer( |
| |
141 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', |
| |
142 //'http://tiles.kartat.kapsi.fi/taustakartta/{z}/{x}/{y}.jpg', |
| |
143 { |
| |
144 attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors', |
| |
145 maxZoom: 18, |
| |
146 } |
| |
147 ).addTo(mymap); |
| |
148 var polyline = L.polyline(route, { |
| |
149 color: 'black', |
| |
150 dashArray: [3, 5], |
| |
151 }).addTo(mymap); |
| |
152 // zoom the map to the polyline |
| |
153 mymap.fitBounds(polyline.getBounds()); |
| |
154 |
| |
155 {% for entry in schedule %} |
| |
156 {% for halt in entry['stops'] %} |
| |
157 marker = L.circleMarker([{{halt["location"]}}], { |
| |
158 radius: 6, |
| |
159 color: 'black', |
| |
160 fillColor: 'yellow', |
| |
161 fillOpacity: 1, |
| |
162 title: "{{halt['ref']}} {{halt['name']}}", |
| |
163 _my_bus_stop_url: "/stop/{{halt['ref']}}", |
| |
164 }).addTo(mymap); |
| |
165 popupmsg = "<h3><a href='/stop/{{halt['ref']}}'><span class='bus_stop_ref'>{{halt['ref']}}</span> {{halt['name']}}</a></h3>"; |
| |
166 |
| |
167 {% if halt['arrival_time'] != halt['departure_time'] %} |
| |
168 popupmsg += "<p><ul><li>Saapuu: {{halt['arrival_time']}}</li><li>Lähtee: {{halt['departure_time']}}</li></ul></p>"; |
| |
169 {% else %} |
| |
170 popupmsg += "<p><ul><li>Pysähtyy: {{halt['arrival_time']}}</li></ul></p>"; |
| |
171 {% endif %} |
| |
172 marker.bindPopup(popupmsg); |
| |
173 {% endfor %} |
| |
174 {% endfor %} |
| |
175 </script> |
| 102 </body> |
176 </body> |
| 103 </html> |
177 </html> |