summaryrefslogtreecommitdiff
path: root/src/leaflet-soton.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/leaflet-soton.js')
-rw-r--r--src/leaflet-soton.js36
1 files changed, 24 insertions, 12 deletions
diff --git a/src/leaflet-soton.js b/src/leaflet-soton.js
index 3edb8ba..4488f1a 100644
--- a/src/leaflet-soton.js
+++ b/src/leaflet-soton.js
@@ -548,20 +548,32 @@ SELECT * WHERE {\
content.appendChild(table);
});
},
- busStop: function(properties) {
+ busStop: function(properties, routeLayer) {
return getTemplateWrapper(properties, function(content) {
- var routeList = document.createElement("ul");
- routeList.className = "ls-route-list";
+ var routesList = [];
+ var routeMasters = routeLayer.getRouteMasters();
- properties.routes.forEach(function(route) {
- var routeLi = document.createElement("li");
- routeLi.textContent = route;
+ for (var routeMasterName in routeMasters) {
+ var routeMaster = routeMasters[routeMasterName];
- routeList.appendChild(routeLi);
+ for (var i in routeMaster.routes) {
+ var route = routeMaster.routes[i];
+
+ if (properties.routes.indexOf(route.properties.ref) !== -1) {
+ routesList.push(route);
+ }
+ }
+ }
+
+ var routeListControl = L.Control.Route.createRouteList({
+ routes: routesList
+ }, function(routeName) {
+ routeLayer.resetRoutes();
+ routeLayer.highlightRoute(routeName);
});
- content.appendChild(routeList);
+ content.appendChild(routeListControl);
var IFrame = document.createElement('iframe');
IFrame.setAttribute('src', 'http://bus.southampton.ac.uk/bus-stop-iframe/' + properties.uri.slice(37) + ".html")
@@ -885,7 +897,7 @@ SELECT * WHERE {\
routeOptions: {
onEachFeature: function(feature, layer) {
layer.on('click', function(e) {
- var content = busRouteTemplate(feature.properties);
+ var content = LS.infoTemplates.busRoute(feature.properties, routeLayer);
map.showInfo(content, e.latlng);
});
@@ -895,7 +907,7 @@ SELECT * WHERE {\
stopOptions: {
onEachFeature: function(feature, layer) {
layer.on('click', function(e) {
- var content = LS.infoTemplates.busStop(feature.properties);
+ var content = LS.infoTemplates.busStop(feature.properties, routeLayer);
map.showInfo(content, e.latlng);
});
@@ -905,7 +917,7 @@ SELECT * WHERE {\
routeLayer.addTo(map);
if (options.busRoutes && options.busRouteControl) {
- var routeControl = new L.Control.Route(routeLayer, "sidebar", {
+ var routeControl = new L.Control.RouteSidebar(routeLayer, "sidebar", {
routeMasterSort: function(a, b) {
var refs = {
"U1": 1,
@@ -917,7 +929,7 @@ SELECT * WHERE {\
return refs[a] - refs[b];
},
- position: "right"
+ position: "left"
});
routeControl.addTo(map);
routeControl.show();