diff --git a/icons/shield_ca_on_hamilton_blue.svg b/icons/shield_ca_on_hamilton_blue.svg
new file mode 100644
index 000000000..eb3c79ac6
--- /dev/null
+++ b/icons/shield_ca_on_hamilton_blue.svg
@@ -0,0 +1,4 @@
+
diff --git a/icons/shield_ca_on_hamilton_green.svg b/icons/shield_ca_on_hamilton_green.svg
new file mode 100644
index 000000000..43fe46665
--- /dev/null
+++ b/icons/shield_ca_on_hamilton_green.svg
@@ -0,0 +1,4 @@
+
diff --git a/icons/shield_ca_on_toronto.svg b/icons/shield_ca_on_toronto.svg
new file mode 100644
index 000000000..1a8f35a75
--- /dev/null
+++ b/icons/shield_ca_on_toronto.svg
@@ -0,0 +1,5 @@
+
diff --git a/src/js/shield_defs.js b/src/js/shield_defs.js
index 24189b40a..322a8d340 100644
--- a/src/js/shield_defs.js
+++ b/src/js/shield_defs.js
@@ -361,6 +361,32 @@ export function loadShields() {
shields["CA:ON:Muskoka:West"] = banneredShield(shields["CA:ON:Muskoka"], [
"WEST",
]);
+ shields["CA:ON:Hamilton:Expressway"] = {
+ notext: true,
+ overrideByName: {
+ "Lincoln M. Alexander Parkway": {
+ spriteBlank: "shield_ca_on_hamilton_blue",
+ },
+ "Red Hill Valley Parkway": {
+ spriteBlank: "shield_ca_on_hamilton_green",
+ },
+ },
+ };
+ shields["CA:ON:Toronto:Expressway"] = {
+ spriteBlank: "shield_ca_on_toronto",
+ textColor: Color.shields.black,
+ textLayout: textConstraint("ellipse"),
+ padding: {
+ left: 5,
+ right: 5,
+ top: 5,
+ bottom: 5,
+ },
+ refsByName: {
+ "Don Valley Parkway": "DV",
+ "Gardiner Expressway": "G",
+ },
+ };
// Prince Edward Island
shields["CA:PE"] = {
diff --git a/src/shieldtest.js b/src/shieldtest.js
index 43ee5b361..f687008e6 100644
--- a/src/shieldtest.js
+++ b/src/shieldtest.js
@@ -303,6 +303,14 @@ const iterShields = function* () {
network: "CA:ON:primary",
refs: ["QEW"],
};
+ yield {
+ network: "CA:ON:Hamilton:Expressway",
+ names: ["Lincoln M. Alexander Parkway", "Red Hill Valley Parkway"],
+ };
+ yield {
+ network: "CA:ON:Toronto:Expressway",
+ refs: ["DV", "G"],
+ };
yield {
network: "GLCT",
refs: ["LECT", "LHCT", "LMCT", "LSCT"],