diff --git a/route-list.html b/route-list.html
index 5929ac9d..02d8f743 100644
--- a/route-list.html
+++ b/route-list.html
@@ -15,10 +15,12 @@
SR |
RRT |
RRQ |
+ Direction |
Shield |
RRT Description |
RRQ Description |
- Direction |
+ Min SRMP |
+ Max SRMP |
diff --git a/src/milepost-info/index.ts b/src/milepost-info/index.ts
new file mode 100644
index 00000000..9731dc71
--- /dev/null
+++ b/src/milepost-info/index.ts
@@ -0,0 +1,92 @@
+let results: FeatureAttributes[] | undefined;
+
+const srmpFieldName = "SRMP";
+const routeIdFieldName = "RouteID";
+const directionFieldName = "Direction";
+const minSrmpFieldName = "MinSrmp";
+const maxSrmpFieldName = "MaxSrmp";
+
+const outStatistics = [
+ {
+ statisticType: "MIN",
+ onStatisticField: srmpFieldName,
+ outStatisticFieldName: minSrmpFieldName,
+ },
+ {
+ statisticType: "MAX",
+ onStatisticField: srmpFieldName,
+ outStatisticFieldName: maxSrmpFieldName,
+ },
+] as const;
+
+interface FeatureAttributes {
+ RouteID: string;
+ Direction: "i" | "d";
+ MinSrmp: number;
+ MaxSrmp: number;
+}
+
+interface Feature {
+ attributes: FeatureAttributes;
+}
+
+interface FeatureSet extends Record {
+ displayFieldName: "";
+ fieldAliases: {
+ RouteID: typeof routeIdFieldName;
+ Direction: typeof directionFieldName;
+ MinSrmp: typeof minSrmpFieldName;
+ MaxSrmp: typeof maxSrmpFieldName;
+ };
+ fields: [
+ {
+ name: typeof routeIdFieldName;
+ type: "esriFieldTypeString";
+ alias: typeof routeIdFieldName;
+ length: 12;
+ },
+ {
+ name: typeof directionFieldName;
+ type: "esriFieldTypeString";
+ alias: typeof directionFieldName;
+ length: 2;
+ },
+ {
+ name: typeof minSrmpFieldName;
+ type: "esriFieldTypeSingle";
+ alias: typeof minSrmpFieldName;
+ },
+ {
+ name: typeof maxSrmpFieldName;
+ type: "esriFieldTypeSingle";
+ alias: typeof maxSrmpFieldName;
+ },
+ ];
+ features: Feature[];
+}
+
+export const milepostsUrl =
+ "https://data.wsdot.wa.gov/arcgis/rest/services/Shared/MilepostValues/FeatureServer/3/query/";
+/**
+ * Retrieves a list of all route IDs and their minimum and maximum SRMP values.
+ * @returns - A list of route IDs and their minimum and maximum SRMP values.
+ */
+export async function getRouteList() {
+ if (!results) {
+ const fieldPairString = `${routeIdFieldName},${directionFieldName}`;
+ const search = new URLSearchParams([
+ ["outStatistics", JSON.stringify(outStatistics)],
+ ["returnGeometry", "false"],
+ ["groupByFieldsForStatistics", fieldPairString],
+ ["orderByFields", fieldPairString],
+ ["f", "json"],
+ ]);
+ const url = new URL(`?${search.toString()}`, milepostsUrl);
+ const response = await fetch(url);
+ console.debug(response);
+ results = ((await response.json()) as FeatureSet).features.map(
+ (feature) => feature.attributes,
+ );
+ }
+ return results;
+}
diff --git a/src/route-list-page.ts b/src/route-list-page.ts
index 85387ed8..6266756b 100644
--- a/src/route-list-page.ts
+++ b/src/route-list-page.ts
@@ -1,29 +1,30 @@
-import { getRoutes } from "./elc";
-import { RouteTypes } from "./elc/types";
+import { getRouteList } from "./milepost-info";
import "./route-list.css";
import "@fontsource/lato";
import "@wsdot/web-styles/css/wsdot-colors.css";
import { RouteDescription } from "wsdot-route-utils";
-const routes = await getRoutes();
+const routes = await getRouteList();
-const routeDescriptions = Object.entries(routes.Current).map(
- ([routeName, routeTypes]) => {
- const route = new RouteDescription(routeName);
- const { sr, rrt, rrq, shield, rrtDescription, rrqDescription } = route;
- return {
- routeObject: route,
- route: route.toString(),
- sr,
- rrt,
- rrq,
- shield,
- rrtDescription,
- rrqDescription,
- routeTypes: RouteTypes[routeTypes],
- } as const;
- },
-);
+const routeDescriptions = routes.map((r) => {
+ const { RouteID, MinSrmp, MaxSrmp, Direction } = r;
+ const route = new RouteDescription(RouteID);
+
+ const { sr, rrt, rrq, shield, rrtDescription, rrqDescription } = route;
+ return {
+ routeObject: route,
+ route: route.toString(),
+ sr,
+ rrt,
+ rrq,
+ direction: Direction,
+ shield,
+ rrtDescription,
+ rrqDescription,
+ minSrmp: MinSrmp,
+ maxSrmp: MaxSrmp,
+ } as const;
+});
const sortFunction = (
a: (typeof routeDescriptions)[number],
@@ -38,6 +39,9 @@ const sortFunction = (
if (a.rrt !== null && b.rrt !== null && a.rrt !== b.rrt) {
return a.rrt.localeCompare(b.rrt);
}
+ if (a.direction !== b.direction) {
+ return b.direction.localeCompare(a.direction);
+ }
return 0;
};
// Sort the routeDescriptions alphabetically by the "route" property, then by rrq, then by rrt.
@@ -75,7 +79,11 @@ for (const routeDataRow of routeDescriptions) {
const cell = rowElement.insertCell();
cell.classList.add(key);
if (value != null) {
- cell.append(value);
+ if (typeof value === "number") {
+ cell.append(value.toString());
+ } else {
+ cell.append(value);
+ }
}
}
diff --git a/tests/milepost-info-sample.json b/tests/milepost-info-sample.json
new file mode 100644
index 00000000..77359f56
--- /dev/null
+++ b/tests/milepost-info-sample.json
@@ -0,0 +1,3851 @@
+{
+ "displayFieldName": "",
+ "fieldAliases": {
+ "RouteID": "RouteID",
+ "Direction": "Direction",
+ "MinSrmp": "MinSrmp",
+ "MaxSrmp": "MaxSrmp"
+ },
+ "fields": [
+ {
+ "name": "RouteID",
+ "type": "esriFieldTypeString",
+ "alias": "RouteID",
+ "length": 12
+ },
+ {
+ "name": "Direction",
+ "type": "esriFieldTypeString",
+ "alias": "Direction",
+ "length": 2
+ },
+ {
+ "name": "MinSrmp",
+ "type": "esriFieldTypeSingle",
+ "alias": "MinSrmp"
+ },
+ {
+ "name": "MaxSrmp",
+ "type": "esriFieldTypeSingle",
+ "alias": "MaxSrmp"
+ }
+ ],
+ "features": [
+ {
+ "attributes": {
+ "RouteID": "002",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 334.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "002",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 334.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "002COBROWNE",
+ "Direction": "i",
+ "MinSrmp": 287.5,
+ "MaxSrmp": 288.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "002CODIVISN",
+ "Direction": "i",
+ "MinSrmp": 289.2,
+ "MaxSrmp": 290.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "002CONEWPRT",
+ "Direction": "i",
+ "MinSrmp": 334.4,
+ "MaxSrmp": 334.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "002CONEWPRT",
+ "Direction": "d",
+ "MinSrmp": 334.4,
+ "MaxSrmp": 334.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "003",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 60.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "003",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 60.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "004",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 62.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "004",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 62.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "004COKELSO",
+ "Direction": "i",
+ "MinSrmp": 61.8,
+ "MaxSrmp": 61.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "004COKELSO",
+ "Direction": "d",
+ "MinSrmp": 61.9,
+ "MaxSrmp": 61.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "005",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 276.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "005",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 276.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "005RL005EXP",
+ "Direction": "i",
+ "MinSrmp": 165.3,
+ "MaxSrmp": 172.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "005RL005EXP",
+ "Direction": "d",
+ "MinSrmp": 172.5,
+ "MaxSrmp": 172.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "006",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 51.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "006",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 51.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "007",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 58.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "007",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 58.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "008",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 20.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "008",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 20.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "009",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 98.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "009",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 98.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "009SPSUMAS",
+ "Direction": "i",
+ "MinSrmp": 98.0,
+ "MaxSrmp": 98.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "009SPSUMAS",
+ "Direction": "d",
+ "MinSrmp": 98.0,
+ "MaxSrmp": 98.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "010",
+ "Direction": "i",
+ "MinSrmp": 88.3,
+ "MaxSrmp": 104.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "010",
+ "Direction": "d",
+ "MinSrmp": 88.3,
+ "MaxSrmp": 104.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "011",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 21.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "011",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 21.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "012",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 434.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "012",
+ "Direction": "d",
+ "MinSrmp": 0.4,
+ "MaxSrmp": 434.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "012COABERDN",
+ "Direction": "i",
+ "MinSrmp": 0.4,
+ "MaxSrmp": 0.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "014",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 180.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "014",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 180.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "014SPMARYHL",
+ "Direction": "i",
+ "MinSrmp": 100.7,
+ "MaxSrmp": 101.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "014SPMARYHL",
+ "Direction": "d",
+ "MinSrmp": 100.7,
+ "MaxSrmp": 101.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "016",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 29.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "016",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 29.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "016AR",
+ "Direction": "i",
+ "MinSrmp": 9.2,
+ "MaxSrmp": 9.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "016SPGORST",
+ "Direction": "i",
+ "MinSrmp": 28.8,
+ "MaxSrmp": 29.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "016SPGORST",
+ "Direction": "d",
+ "MinSrmp": 28.8,
+ "MaxSrmp": 29.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "017",
+ "Direction": "i",
+ "MinSrmp": 7.5,
+ "MaxSrmp": 144.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "017",
+ "Direction": "d",
+ "MinSrmp": 7.5,
+ "MaxSrmp": 144.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "018",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 27.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "018",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 27.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "019",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 14.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "019",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 14.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "020",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 436.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "020",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 436.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "020SPANACRT",
+ "Direction": "i",
+ "MinSrmp": 47.9,
+ "MaxSrmp": 55.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "020SPANACRT",
+ "Direction": "d",
+ "MinSrmp": 47.9,
+ "MaxSrmp": 55.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "021",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 191.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "021",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 191.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "022",
+ "Direction": "i",
+ "MinSrmp": 0.7,
+ "MaxSrmp": 36.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "022",
+ "Direction": "d",
+ "MinSrmp": 0.7,
+ "MaxSrmp": 36.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "023",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 66.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "023",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 66.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "024",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 79.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "024",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 79.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "025",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 121.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "025",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 121.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "026",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 133.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "026",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 133.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "026SPCOLFAX",
+ "Direction": "i",
+ "MinSrmp": 133.5,
+ "MaxSrmp": 133.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "026SPCOLFAX",
+ "Direction": "d",
+ "MinSrmp": 133.5,
+ "MaxSrmp": 133.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "027",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 87.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "027",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 87.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "028",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 131.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "028",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 131.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "028COWENTCH",
+ "Direction": "i",
+ "MinSrmp": 4.3,
+ "MaxSrmp": 4.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "028SPWENTCH",
+ "Direction": "i",
+ "MinSrmp": 4.3,
+ "MaxSrmp": 5.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "028SPWENTCH",
+ "Direction": "d",
+ "MinSrmp": 4.3,
+ "MaxSrmp": 5.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "031",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 26.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "031",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 26.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "041",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 0.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "041",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 0.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "082",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 132.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "082",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 132.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "090",
+ "Direction": "i",
+ "MinSrmp": 2.1,
+ "MaxSrmp": 299.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "090",
+ "Direction": "d",
+ "MinSrmp": 2.0,
+ "MaxSrmp": 299.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "092",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "092",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "092SPGRANIT",
+ "Direction": "i",
+ "MinSrmp": 7.3,
+ "MaxSrmp": 7.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "092SPGRANIT",
+ "Direction": "d",
+ "MinSrmp": 7.3,
+ "MaxSrmp": 7.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "096",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 6.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "096",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 6.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "097",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 336.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "097",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 336.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "097AR",
+ "Direction": "i",
+ "MinSrmp": 199.9,
+ "MaxSrmp": 239.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "097AR",
+ "Direction": "d",
+ "MinSrmp": 199.9,
+ "MaxSrmp": 239.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "097COMARYHL",
+ "Direction": "i",
+ "MinSrmp": 2.6,
+ "MaxSrmp": 2.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "097COMARYHL",
+ "Direction": "d",
+ "MinSrmp": 2.6,
+ "MaxSrmp": 2.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "097SPORONDO",
+ "Direction": "i",
+ "MinSrmp": 213.4,
+ "MaxSrmp": 213.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "097SPORONDO",
+ "Direction": "d",
+ "MinSrmp": 213.4,
+ "MaxSrmp": 213.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "099",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 55.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "099",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 55.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "099COTUNNEL",
+ "Direction": "i",
+ "MinSrmp": 32.7,
+ "MaxSrmp": 35.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "100",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 4.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "100",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 4.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "100SPCANBY",
+ "Direction": "i",
+ "MinSrmp": 3.0,
+ "MaxSrmp": 3.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "100SPCANBY",
+ "Direction": "d",
+ "MinSrmp": 3.0,
+ "MaxSrmp": 3.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "101",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 367.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "101",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 367.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "101AR",
+ "Direction": "i",
+ "MinSrmp": 9.5,
+ "MaxSrmp": 10.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "101AR",
+ "Direction": "d",
+ "MinSrmp": 9.5,
+ "MaxSrmp": 10.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "101COABERDN",
+ "Direction": "i",
+ "MinSrmp": 87.5,
+ "MaxSrmp": 91.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "101COABERDN",
+ "Direction": "d",
+ "MinSrmp": 87.5,
+ "MaxSrmp": 87.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "101COHERON",
+ "Direction": "i",
+ "MinSrmp": 83.8,
+ "MaxSrmp": 83.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "101COPRTANG",
+ "Direction": "i",
+ "MinSrmp": 249.7,
+ "MaxSrmp": 251.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "101COPRTANG",
+ "Direction": "d",
+ "MinSrmp": 251.3,
+ "MaxSrmp": 251.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "102",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 2.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "102",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 2.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "103",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 19.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "103",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 19.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "104",
+ "Direction": "i",
+ "MinSrmp": 0.2,
+ "MaxSrmp": 32.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "104",
+ "Direction": "d",
+ "MinSrmp": 0.2,
+ "MaxSrmp": 32.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "104COKNGSTN",
+ "Direction": "i",
+ "MinSrmp": 24.6,
+ "MaxSrmp": 24.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "104SPAURORA",
+ "Direction": "i",
+ "MinSrmp": 28.7,
+ "MaxSrmp": 29.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "104SPAURORA",
+ "Direction": "d",
+ "MinSrmp": 28.7,
+ "MaxSrmp": 29.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "105",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 48.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "105",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 48.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "105SPBOONE",
+ "Direction": "i",
+ "MinSrmp": 48.7,
+ "MaxSrmp": 48.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "105SPBOONE",
+ "Direction": "d",
+ "MinSrmp": 48.7,
+ "MaxSrmp": 48.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "105SPWESTPT",
+ "Direction": "i",
+ "MinSrmp": 30.3,
+ "MaxSrmp": 34.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "105SPWESTPT",
+ "Direction": "d",
+ "MinSrmp": 30.3,
+ "MaxSrmp": 34.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "106",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 19.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "106",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 19.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "107",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 7.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "107",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 7.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "108",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 11.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "108",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 11.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "109",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 40.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "109",
+ "Direction": "d",
+ "MinSrmp": 0.2,
+ "MaxSrmp": 40.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "109COHQUIAM",
+ "Direction": "i",
+ "MinSrmp": 0.2,
+ "MaxSrmp": 0.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "109SPLONNGR",
+ "Direction": "i",
+ "MinSrmp": 1.8,
+ "MaxSrmp": 3.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "109SPLONNGR",
+ "Direction": "d",
+ "MinSrmp": 1.8,
+ "MaxSrmp": 3.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "110",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 11.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "110",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 11.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "110SPMORA",
+ "Direction": "i",
+ "MinSrmp": 7.8,
+ "MaxSrmp": 10.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "110SPMORA",
+ "Direction": "d",
+ "MinSrmp": 7.8,
+ "MaxSrmp": 10.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "112",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 61.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "112",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 61.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "113",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "113",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "115",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 2.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "115",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 2.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "116",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "116",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "117",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 1.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "117",
+ "Direction": "d",
+ "MinSrmp": 0.1,
+ "MaxSrmp": 1.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "119",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 10.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "119",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 10.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "121",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 7.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "121",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 7.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "122",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 7.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "122",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 7.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "123",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 16.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "123",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 16.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "124",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 44.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "124",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 44.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "125",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 23.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "125",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 23.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "125SP125SP",
+ "Direction": "i",
+ "MinSrmp": 6.1,
+ "MaxSrmp": 6.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "125SP125SP",
+ "Direction": "d",
+ "MinSrmp": 6.1,
+ "MaxSrmp": 6.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "127",
+ "Direction": "i",
+ "MinSrmp": 0.1,
+ "MaxSrmp": 27.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "127",
+ "Direction": "d",
+ "MinSrmp": 0.1,
+ "MaxSrmp": 27.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "128",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 2.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "128",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 2.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "129",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 42.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "129",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 42.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "129SP6THST",
+ "Direction": "i",
+ "MinSrmp": 42.2,
+ "MaxSrmp": 42.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "129SP6THST",
+ "Direction": "d",
+ "MinSrmp": 42.2,
+ "MaxSrmp": 42.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "131",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 2.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "131",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 2.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "141",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 29.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "141",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 29.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "141SPUNDRWD",
+ "Direction": "i",
+ "MinSrmp": 4.7,
+ "MaxSrmp": 6.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "141SPUNDRWD",
+ "Direction": "d",
+ "MinSrmp": 4.7,
+ "MaxSrmp": 6.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "142",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 35.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "142",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 35.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "150",
+ "Direction": "i",
+ "MinSrmp": 0.3,
+ "MaxSrmp": 12.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "150",
+ "Direction": "d",
+ "MinSrmp": 0.3,
+ "MaxSrmp": 12.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "153",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 30.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "153",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 30.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "155",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 80.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "155",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 80.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "155SPOMAK",
+ "Direction": "i",
+ "MinSrmp": 80.2,
+ "MaxSrmp": 80.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "155SPOMAK",
+ "Direction": "d",
+ "MinSrmp": 80.2,
+ "MaxSrmp": 80.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "160",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 7.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "160",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 7.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "161",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 36.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "161",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 36.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "162",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 19.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "162",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 19.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "163",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "163",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "164",
+ "Direction": "i",
+ "MinSrmp": 0.4,
+ "MaxSrmp": 15.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "164",
+ "Direction": "d",
+ "MinSrmp": 0.4,
+ "MaxSrmp": 15.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "165",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 21.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "165",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 21.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "166",
+ "Direction": "i",
+ "MinSrmp": 0.1,
+ "MaxSrmp": 5.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "166",
+ "Direction": "d",
+ "MinSrmp": 0.1,
+ "MaxSrmp": 5.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "167",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 27.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "167",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 27.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "169",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 25.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "169",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 25.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "170",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "170",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "171",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "171",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "172",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 35.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "172",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 35.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "173",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 11.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "173",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 11.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "174",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 40.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "174",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 40.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "174SPCRWNPT",
+ "Direction": "i",
+ "MinSrmp": 19.6,
+ "MaxSrmp": 20.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "174SPCRWNPT",
+ "Direction": "d",
+ "MinSrmp": 19.6,
+ "MaxSrmp": 20.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "174SPLEAHY",
+ "Direction": "i",
+ "MinSrmp": 0.2,
+ "MaxSrmp": 0.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "174SPLEAHY",
+ "Direction": "d",
+ "MinSrmp": 0.2,
+ "MaxSrmp": 0.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "181",
+ "Direction": "i",
+ "MinSrmp": 5.4,
+ "MaxSrmp": 11.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "181",
+ "Direction": "d",
+ "MinSrmp": 5.4,
+ "MaxSrmp": 11.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "182",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 15.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "182",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 15.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "193",
+ "Direction": "i",
+ "MinSrmp": 0.6,
+ "MaxSrmp": 3.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "193",
+ "Direction": "d",
+ "MinSrmp": 0.6,
+ "MaxSrmp": 3.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "194",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 21.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "194",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 21.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "195",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 95.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "195",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 95.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "195SPGNESSE",
+ "Direction": "i",
+ "MinSrmp": 0.1,
+ "MaxSrmp": 0.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "195SPGNESSE",
+ "Direction": "d",
+ "MinSrmp": 0.1,
+ "MaxSrmp": 0.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "197",
+ "Direction": "i",
+ "MinSrmp": 0.5,
+ "MaxSrmp": 3.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "197",
+ "Direction": "d",
+ "MinSrmp": 0.5,
+ "MaxSrmp": 3.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "202",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 30.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "202",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 30.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "203",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 24.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "203",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 24.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "204",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 2.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "204",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 2.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "205",
+ "Direction": "i",
+ "MinSrmp": 26.6,
+ "MaxSrmp": 37.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "205",
+ "Direction": "d",
+ "MinSrmp": 26.6,
+ "MaxSrmp": 37.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "206",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 15.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "206",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 15.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "207",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 4.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "207",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 4.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "211",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 15.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "211",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 15.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "213",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 0.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "213",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 0.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "215",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 6.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "215",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 6.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "221",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 26.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "221",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 26.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "223",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "223",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "224",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "224",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "225",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 11.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "225",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 11.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "231",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 75.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "231",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 75.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "240",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 43.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "240",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 43.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "241",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 25.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "241",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 25.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "243",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 28.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "243",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 28.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "260",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 39.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "260",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 39.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "261",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 62.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "261",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 62.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "262",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 24.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "262",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 24.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "263",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "263",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "270",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "270",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "270COPULLMN",
+ "Direction": "i",
+ "MinSrmp": 2.7,
+ "MaxSrmp": 2.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "271",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 8.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "271",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 8.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "272",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 19.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "272",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 19.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "274",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 1.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "274",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 1.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "278",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 5.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "278",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 5.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "281",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 10.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "281",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 10.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "281SPBURKE",
+ "Direction": "i",
+ "MinSrmp": 2.7,
+ "MaxSrmp": 4.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "281SPBURKE",
+ "Direction": "d",
+ "MinSrmp": 2.7,
+ "MaxSrmp": 4.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "282",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 4.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "282",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 4.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "283",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 14.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "283",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 14.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "285",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 5.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "285",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 5.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "285COWENTCH",
+ "Direction": "i",
+ "MinSrmp": 2.9,
+ "MaxSrmp": 4.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "285COWENTCH",
+ "Direction": "d",
+ "MinSrmp": 2.9,
+ "MaxSrmp": 2.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "290",
+ "Direction": "i",
+ "MinSrmp": 0.2,
+ "MaxSrmp": 18.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "290",
+ "Direction": "d",
+ "MinSrmp": 0.1,
+ "MaxSrmp": 18.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "291",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 33.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "291",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 33.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "292",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 5.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "292",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 5.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "300",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "300",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "302",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 16.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "302",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 16.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "302SPPURDY",
+ "Direction": "i",
+ "MinSrmp": 15.9,
+ "MaxSrmp": 17.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "302SPPURDY",
+ "Direction": "d",
+ "MinSrmp": 15.9,
+ "MaxSrmp": 16.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "303",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "303",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "304",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "304",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 2.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "304COTUNNEL",
+ "Direction": "i",
+ "MinSrmp": 3.6,
+ "MaxSrmp": 3.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "305",
+ "Direction": "i",
+ "MinSrmp": 0.1,
+ "MaxSrmp": 13.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "305",
+ "Direction": "d",
+ "MinSrmp": 0.1,
+ "MaxSrmp": 13.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "307",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 5.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "307",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 5.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "308",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "308",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "310",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 1.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "310",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 1.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "395",
+ "Direction": "i",
+ "MinSrmp": 13.1,
+ "MaxSrmp": 270.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "395",
+ "Direction": "d",
+ "MinSrmp": 13.1,
+ "MaxSrmp": 270.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "395SPNSC",
+ "Direction": "i",
+ "MinSrmp": 160.5,
+ "MaxSrmp": 167.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "395SPNSC",
+ "Direction": "d",
+ "MinSrmp": 160.5,
+ "MaxSrmp": 167.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "397",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 22.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "397",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 22.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "401",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 12.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "401",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 12.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "405",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 30.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "405",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 30.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "409",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "409",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "410",
+ "Direction": "i",
+ "MinSrmp": 8.9,
+ "MaxSrmp": 116.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "410",
+ "Direction": "d",
+ "MinSrmp": 8.9,
+ "MaxSrmp": 116.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "411",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 13.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "411",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 13.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "432",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 10.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "432",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 10.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "433",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 0.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "433",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 0.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "500",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 20.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "500",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 20.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "501",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 19.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "501",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 19.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "501COVANCVR",
+ "Direction": "i",
+ "MinSrmp": 0.7,
+ "MaxSrmp": 1.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "502",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 6.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "502",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 6.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "503",
+ "Direction": "i",
+ "MinSrmp": 1.1,
+ "MaxSrmp": 54.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "503",
+ "Direction": "d",
+ "MinSrmp": 1.1,
+ "MaxSrmp": 54.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "503SPCOUGAR",
+ "Direction": "i",
+ "MinSrmp": 31.4,
+ "MaxSrmp": 39.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "503SPCOUGAR",
+ "Direction": "d",
+ "MinSrmp": 31.4,
+ "MaxSrmp": 39.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "504",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 51.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "504",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 51.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "504SPOLD504",
+ "Direction": "i",
+ "MinSrmp": 21.1,
+ "MaxSrmp": 21.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "504SPOLD504",
+ "Direction": "d",
+ "MinSrmp": 21.1,
+ "MaxSrmp": 21.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "505",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 19.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "505",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 19.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "506",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 11.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "506",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 11.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "507",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 43.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "507",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 43.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "507COPEARL",
+ "Direction": "i",
+ "MinSrmp": 2.3,
+ "MaxSrmp": 3.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "508",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 32.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "508",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 32.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "509",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 29.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "509",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 29.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "510",
+ "Direction": "i",
+ "MinSrmp": 0.1,
+ "MaxSrmp": 15.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "510",
+ "Direction": "d",
+ "MinSrmp": 0.1,
+ "MaxSrmp": 15.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "510SPYELMLP",
+ "Direction": "i",
+ "MinSrmp": 13.6,
+ "MaxSrmp": 14.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "510SPYELMLP",
+ "Direction": "d",
+ "MinSrmp": 13.6,
+ "MaxSrmp": 14.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "512",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 12.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "512",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 12.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "513",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "513",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "515",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 6.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "515",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 6.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "516",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 16.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "516",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 16.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "518",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "518",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "519",
+ "Direction": "i",
+ "MinSrmp": 0.1,
+ "MaxSrmp": 1.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "519",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 1.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "520",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 12.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "520",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 12.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "522",
+ "Direction": "i",
+ "MinSrmp": 0.1,
+ "MaxSrmp": 24.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "522",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 24.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "523",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 2.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "523",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 2.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "524",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 14.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "524",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 14.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "524SP3RDAVE",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 0.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "524SP3RDAVE",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 0.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "524SPCEDRWY",
+ "Direction": "i",
+ "MinSrmp": 4.7,
+ "MaxSrmp": 5.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "524SPCEDRWY",
+ "Direction": "d",
+ "MinSrmp": 4.7,
+ "MaxSrmp": 5.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "525",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 30.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "525",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 30.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "525SPPAINE",
+ "Direction": "i",
+ "MinSrmp": 5.6,
+ "MaxSrmp": 6.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "525SPPAINE",
+ "Direction": "d",
+ "MinSrmp": 5.6,
+ "MaxSrmp": 6.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "526",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 4.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "526",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 4.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "527",
+ "Direction": "i",
+ "MinSrmp": 2.7,
+ "MaxSrmp": 11.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "527",
+ "Direction": "d",
+ "MinSrmp": 2.7,
+ "MaxSrmp": 11.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "528",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "528",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.4
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "529",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 6.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "529",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 6.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "529SPEVERET",
+ "Direction": "i",
+ "MinSrmp": 0.4,
+ "MaxSrmp": 0.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "529SPEVERET",
+ "Direction": "d",
+ "MinSrmp": 0.4,
+ "MaxSrmp": 0.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "530",
+ "Direction": "i",
+ "MinSrmp": 17.0,
+ "MaxSrmp": 67.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "530",
+ "Direction": "d",
+ "MinSrmp": 17.0,
+ "MaxSrmp": 67.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "531",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "531",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "532",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 10.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "532",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 10.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "534",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 5.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "534",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 5.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "536",
+ "Direction": "i",
+ "MinSrmp": 0.2,
+ "MaxSrmp": 5.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "536",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 5.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "538",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "538",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 3.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "539",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 15.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "539",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 15.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "539COLYNDEN",
+ "Direction": "i",
+ "MinSrmp": 15.2,
+ "MaxSrmp": 15.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "542",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 57.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "542",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 57.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "542COMTBAKR",
+ "Direction": "i",
+ "MinSrmp": 54.6,
+ "MaxSrmp": 54.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "543",
+ "Direction": "i",
+ "MinSrmp": 0.2,
+ "MaxSrmp": 1.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "543",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 1.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "544",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "544",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "546",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 8.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "546",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 8.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "547",
+ "Direction": "i",
+ "MinSrmp": 0.1,
+ "MaxSrmp": 10.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "547",
+ "Direction": "d",
+ "MinSrmp": 0.1,
+ "MaxSrmp": 10.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "548",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 13.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "548",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 13.8
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "599",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 1.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "599",
+ "Direction": "d",
+ "MinSrmp": 0.1,
+ "MaxSrmp": 1.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "702",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "702",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 9.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "704",
+ "Direction": "i",
+ "MinSrmp": 5.3,
+ "MaxSrmp": 5.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "704",
+ "Direction": "d",
+ "MinSrmp": 5.3,
+ "MaxSrmp": 5.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "705",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 1.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "705",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 1.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "706",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 13.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "706",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 13.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "730",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 6.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "730",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 6.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "730SPWALULA",
+ "Direction": "i",
+ "MinSrmp": 5.9,
+ "MaxSrmp": 6.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "730SPWALULA",
+ "Direction": "d",
+ "MinSrmp": 5.9,
+ "MaxSrmp": 6.1
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "821",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 25.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "821",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 25.2
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "823",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 4.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "823",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 4.7
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "900",
+ "Direction": "i",
+ "MinSrmp": 6.0,
+ "MaxSrmp": 21.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "900",
+ "Direction": "d",
+ "MinSrmp": 6.0,
+ "MaxSrmp": 21.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "902",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 12.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "902",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 12.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "903",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 10.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "903",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 10.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "903SPCLEELM",
+ "Direction": "i",
+ "MinSrmp": 0.2,
+ "MaxSrmp": 0.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "903SPCLEELM",
+ "Direction": "d",
+ "MinSrmp": 0.2,
+ "MaxSrmp": 0.5
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "904",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 16.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "904",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 16.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "906",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 2.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "906",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 2.6
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "906SPHYAK",
+ "Direction": "i",
+ "MinSrmp": 2.6,
+ "MaxSrmp": 2.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "906SPHYAK",
+ "Direction": "d",
+ "MinSrmp": 2.6,
+ "MaxSrmp": 2.9
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "970",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 10.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "970",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 10.3
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "971",
+ "Direction": "i",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 15.0
+ }
+ },
+ {
+ "attributes": {
+ "RouteID": "971",
+ "Direction": "d",
+ "MinSrmp": 0.0,
+ "MaxSrmp": 15.0
+ }
+ }
+ ]
+}
diff --git a/tests/milepost-info.test.ts b/tests/milepost-info.test.ts
new file mode 100644
index 00000000..ad678917
--- /dev/null
+++ b/tests/milepost-info.test.ts
@@ -0,0 +1,22 @@
+import { getRouteList } from "../src/milepost-info";
+import { describe, it, expect } from "vitest";
+
+// create test suite to test getRouteList function
+describe("getRouteList", () => {
+ it("should return a list of routes", async () => {
+ const routes = await getRouteList();
+ expect(routes.length).toBeGreaterThan(0);
+ for (const { RouteID, Direction, MinSrmp, MaxSrmp } of routes) {
+ [RouteID, Direction].forEach((x) => {
+ expect(x).to.be.a("string");
+ });
+ expect(RouteID).length.to.be.at.least(3);
+ expect(RouteID).length.to.not.be.greaterThan(12);
+ expect(Direction).length.to.be.at.least(1);
+ [MinSrmp, MaxSrmp].forEach((x) => {
+ expect(x).to.be.a("number");
+ expect(x).to.be.at.least(0);
+ });
+ }
+ });
+});
diff --git a/tests/mocks-setup.ts b/tests/mocks-setup.ts
index b3391af7..82a11160 100644
--- a/tests/mocks-setup.ts
+++ b/tests/mocks-setup.ts
@@ -1,4 +1,6 @@
import * as elc from "../src/elc";
+import { milepostsUrl } from "../src/milepost-info";
+import minMaxSrmpFeatureSet from "./milepost-info-sample.json";
import routes from "./routes.json";
import { HttpResponse, http } from "msw";
import { setupServer } from "msw/node";
@@ -70,6 +72,9 @@ export const restHandlers = [
http.get(elc.defaultRoutesUrl, () => {
return HttpResponse.json(routes);
}),
+ http.get(milepostsUrl, () => {
+ return HttpResponse.json(minMaxSrmpFeatureSet);
+ }),
];
const server = setupServer(...restHandlers);