| 124 </tr> |
124 </tr> |
| 125 {% endfor %} |
125 {% endfor %} |
| 126 </tbody> |
126 </tbody> |
| 127 </table> |
127 </table> |
| 128 <script> |
128 <script> |
| 129 function openBusStop(event) { |
129 var osm = L.tileLayer( |
| 130 window.open(this.options._my_bus_stop_url); |
130 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', |
| |
131 { |
| |
132 attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors', |
| |
133 maxZoom: 19, |
| |
134 } |
| |
135 ); |
| |
136 var tiles = { |
| |
137 "OpenStreetMap (Carto)": osm, |
| |
138 "MML Peruskartta": L.tileLayer( |
| |
139 'http://tiles.kartat.kapsi.fi/peruskartta/{z}/{x}/{y}.jpg', |
| |
140 { |
| |
141 attribution: 'Map data © Maanmittauslaitos', |
| |
142 maxZoom: 19, |
| |
143 } |
| |
144 ), |
| |
145 "MML Taustakartta": L.tileLayer( |
| |
146 'http://tiles.kartat.kapsi.fi/taustakartta/{z}/{x}/{y}.jpg', |
| |
147 { |
| |
148 attribution: 'Map data © Maanmittauslaitos', |
| |
149 maxZoom: 19, |
| |
150 } |
| |
151 ), |
| |
152 "MML Ortokuva": L.tileLayer( |
| |
153 'http://tiles.kartat.kapsi.fi/ortokuva/{z}/{x}/{y}.jpg', |
| |
154 { |
| |
155 attribution: 'Map data © Maanmittauslaitos', |
| |
156 maxZoom: 19, |
| |
157 } |
| |
158 ), |
| |
159 "OpenTopoMap": L.tileLayer( |
| |
160 'https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png', |
| |
161 { |
| |
162 attribution: 'Map data © Maanmittauslaitos', |
| |
163 maxZoom: 18, |
| |
164 } |
| |
165 ), |
| 131 } |
166 } |
| |
167 |
| 132 var route = [{{shape}}]; |
168 var route = [{{shape}}]; |
| 133 var mymap = L.map('mapid').setView([60.45175, 22.26705], 13); |
169 var mymap = L.map('mapid', {layers: [osm]}).setView([60.45175, 22.26705], 13); |
| 134 var myIcon = L.icon({ |
170 var myIcon = L.icon({ |
| 135 iconUrl: '/static/favicon.png', |
171 iconUrl: '/static/favicon.png', |
| 136 iconSize: [16, 16], |
172 iconSize: [16, 16], |
| 137 iconAnchor: [8, 8], |
173 iconAnchor: [8, 8], |
| 138 popupAnchor: [-3, -76], |
174 popupAnchor: [-3, -76], |
| 139 }); |
175 }); |
| 140 L.tileLayer( |
176 |
| 141 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', |
177 L.control.layers(tiles).addTo(mymap); |
| 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, { |
178 var polyline = L.polyline(route, { |
| 149 color: 'black', |
179 color: 'black', |
| 150 dashArray: [3, 5], |
180 dashArray: [3, 5], |
| 151 }).addTo(mymap); |
181 }).addTo(mymap); |
| 152 // zoom the map to the polyline |
182 // zoom the map to the polyline |
| 153 mymap.fitBounds(polyline.getBounds()); |
183 mymap.fitBounds(polyline.getBounds()); |
| 154 |
184 |
| 155 {% for entry in schedule %} |
185 {% for entry in schedule %} |
| 156 {% for halt in entry['stops'] %} |
186 {% for halt in entry['stops'] %} |
| 157 marker = L.circleMarker([{{halt["location"]}}], { |
187 marker = L.circleMarker([{{halt["location"]}}], { |
| 158 radius: 6, |
188 radius: 12, |
| 159 color: 'black', |
189 color: 'black', |
| 160 fillColor: 'yellow', |
190 fillColor: 'yellow', |
| 161 fillOpacity: 1, |
191 fillOpacity: 1, |
| 162 title: "{{halt['ref']}} {{halt['name']}}", |
192 title: "{{halt['ref']}} {{halt['name']}}", |
| 163 _my_bus_stop_url: "/stop/{{halt['ref']}}", |
193 _my_bus_stop_url: "/stop/{{halt['ref']}}", |