--[==[
To inspect the content of this data module, use [[Special:ExpandTemplates]]
and enter the following input text:
{{#invoke:Road data/dump|dump|module=Module:<name-of-this-module>}}
To inspect the content of this data module when editing, enter the following
into the Debug console:
local util = require("Module:Road data/util")
print(util.arrayToString(p))
To inspect a particular route type, change `p` above to include the route type,
e.g., `p.I` and `p["US-Hist"]`.
]==]
-- New York
local NY = {}
local util = require("Module:Road data/util")
local format = mw.ustring.format
util.addAll(NY, require("Module:Road data/strings/USA"))
local suffix = " ([dab||%dab%, |]New York)"
NY.I.link = "Interstate %route% (New York)"
for k, v in pairs(NY) do if k:find ("^I") then
v.link = NY.I.link
end
end
NY.BL.link = "Interstate %route% Business ([dab||%dab%, |]New York)"
for k, v in pairs(NY) do if k:find ("^BL") then
v.link = NY.BL.link
end
end
NY.US.shield = {
["1-9"] = "US 1-9.svg",
["9W"] = "US 9W (NY).svg",
default = {
hook = "splitlen",
split = 3,
above = "US %route% (NY).svg",
below = "US %route%.svg"
}
}
NY.US.shieldmain = NY.US.shield
NY.US.link = "U.S. Route %route% in New York"
for k, v in pairs(NY) do if k:find ("^US %d") then
v.name = NY.US.name
v.link = NY.US.link
end
end
for _,auxType in ipairs({"Alt", "Bus", "Byp", "City", "Conn", "Emerg", "Opt", "Scenic", "Spur", "Temp", "Toll", "Truck"}) do
local spec = NY[" aux "][auxType]
for k, v in pairs(NY) do if k:find (auxType) then if k:find ("^US") then
v.shield = NY.US.shield
v.shieldmain = NY.US.shieldmain
v.link = NY.US.base .. " " .. spec.name .. " ([dab||%dab%, |]New York)"
end
end
end
end
for _,year in ipairs({'1926', '1948', '1961'}) do
for _,auxType in ipairs({"Alt", "Bus", "Byp", "Conn", "Opt", "Scenic", "Spur", "Temp", "Truck"}) do
local type = "US " .. year
local spec = NY[" aux "][auxType]
NY[type .. "-" .. auxType] = {
shield = NY[type].shield,
shieldmain = NY[type].shieldmain,
name = NY[type].name .. " " .. spec.name,
link = NY[type].base .. " " .. spec.name .. suffix,
abbr = NY[type].abbr .. " " .. spec.abbrsuffix,
banner = spec.bannerprefix .. " plate " .. year .. ".svg",
aux = spec.aux,
width = NY[type].width
}
end
end
NY.NY = {
base = "New York State Route %route%",
shield = "NY-%route%.svg",
shieldmain = {
["74"] = {"NY-%route%.svg", "Vermont %route%.svg"},
["149"] = {"NY-%route%.svg", "Vermont %route%.svg"},
["295"] = {"NY-%route%.svg", "MA Route %route%.svg"},
["313"] = {"NY-%route%.svg", "Vermont %route%.svg"},
["314"] = {"NY-%route%.svg", "Vermont %route%.svg"},
["343"] = {"NY-%route%.svg", "Connecticut Highway %route% wide.svg"},
["346"] = {"NY-%route%.svg", "Vermont %route%.svg"},
default = "NY-%route%.svg"
},
name = {
["74"] = "Route %route%",
["149"] = "Route %route%",
["295"] = "Route %route%",
["313"] = "Route %route%",
["314"] = "Route %route%",
["343"] = "New York State Route %route% and<br>Connecticut Route %route%",
["346"] = "Route %route%",
default = "New York State Route %route%"
},
link = "New York State Route %route% [dab||(%dab%)|]",
abbr = "NY %route%",
width = "expand"
}
NY.SR = NY.NY
NY.Ref = { --Reference routes
shield = "",
shieldlist = "No image.svg",
name = NY.NY.name.default,
link = NY.NY.link,
abbr = NY.NY.abbr
}
for _,year in ipairs({"1927", "1948", "1955", "1960"}) do
NY["NY " .. year] = {
shield = format("NY-%%route%% (%s).svg", year),
name = NY.NY.name.default,
link = NY.NY.link,
abbr = NY.NY.abbr,
width = "square",
}
end
for _,type in ipairs({'NY'}) do
for _,auxType in ipairs({"Alt", "Bus", "Byp", "Spur", "Truck"}) do
local spec = NY[" aux "][auxType]
NY["NY-" .. auxType] = {
shield = NY.NY.shield,
name = NY.NY.name.default .. " " .. spec.name,
link = NY.NY.base .. " " .. spec.name .. NY[" dab "],
abbr = NY.NY.abbr .. " " .. spec.abbrsuffix,
banner = spec.bannerprefix .. " plate.svg",
aux = spec.aux,
width = "expand",
}
end
end
local pkwys = {
-- link-suffix => parkways
-- Do not list "Parkway" link-suffix.
[""] = {
["Bronx River NYC"] = "Bronx River Parkway",
["Saw Mill"] = "Saw Mill River Parkway",
["Robert Moses Cswy"] = "Robert Moses Causeway"
},
Drive = {
["FDR"] = "Franklin D. Roosevelt East River",
"Harlem River",
"Seven Lakes"
},
["Interstate Parkway"] = {
"Palisades"
},
Road = {
"Arden Valley",
"Tiorati Brook"
},
["State Parkway"] = {
"Bear Mountain",
"Caumsett",
"Lake Ontario",
"Robert Moses",
"Taconic",
}
}
local pkwyShields = {
default = "%route% Pkwy Shield.svg",
Belt = "%route% Pkwy Shield free.svg",
["Bronx River NYC"] = "Bronx River Pkwy Shield free.svg",
["Cross Island"] = "%route% Pkwy Shield free.svg",
["FDR"] = "%route% Drive Shield free.svg",
["FDR Drive"] = "%route% Shield free.svg",
["Grand Central"] = "%route% Pkwy Shield free.svg",
["Harlem River"] = "%route% Drive Shield free.svg",
["Harlem River Drive"] = "%route% Shield free.svg",
["Henry Hudson"] = "%route% Pkwy Shield free.svg",
["Jackie Robinson"] = "%route% Pkwy Shield free.svg",
["Korean War Vets"] = "%route% Pkwy Shield free.svg",
Pelham = "%route% Pkwy Shield free.svg",
Bay = "",
["Long Mountain"] = ""
}
local pkwyAbbrs = {
-- link-suffix => abbr-suffix
["Interstate Parkway"] = "Parkway"
}
local pkwyLIPkwys = {
-- Parkways in Long Island that do not end with "State Parkway"
"Loop",
"Ocean",
"Robert Moses Cswy",
}
local pkwyLIStatePkwys = {
-- Parkways in Long Island that end with "State Parkway"
"Bethpage",
"Heckscher",
"Meadowbrook",
"Northern",
"Sagtikos",
"Southern",
"Sunken Meadow",
"Wantagh"
}
for _,pkwy in ipairs(pkwyLIStatePkwys) do
table.insert(pkwyLIPkwys, pkwy)
table.insert(pkwys["State Parkway"], pkwy)
end
local pkwyPIPPkwys = {
-- Parkways maintained by Palisades Interstate Park Commission
"Lake Welch",
"Palisades",
}
for _,pkwy in ipairs(pkwys.Road) do
table.insert(pkwyPIPPkwys, pkwy)
end
NY.Parkway = {
shield = pkwyShields,
name = {default = "%route% Parkway"},
link = {default = "%route% Parkway [dab||(%dab%)|]"},
abbr = {default = "%route% Parkway"},
width = {
default = 'square',
["Bear Mountain"] = 'wide',
["Cross County"] = 'wide',
["Saw Mill"] = 'wide',
["Sprain Brook"] = 'wide',
["Taconic State"] = 'wide'
},
bannersuffix = {
default = "green",
Belt = "",
["Bronx River NYC"] = "",
["Cross Island"] = "",
["FDR"] = "",
["FDR Drive"] = "",
["Garden State"] = "GSP",
["Grand Central"] = "",
["Harlem River"] = "",
["Harlem River Drive"] = "",
["Henry Hudson"] = "",
["Jackie Robinson"] = "",
["Korean War Vets"] = "",
["Merritt"] = "blue",
Pelham = "",
["Seven Lakes"] = "brown",
},
orientation = {
default = "",
Niagara = "upright",
}
}
for suffix,list in pairs(pkwys) do
local abbrSuffix = pkwyAbbrs[suffix] or suffix
for abbr,pkwy in pairs(list) do
if type(abbr) == "number" then abbr = pkwy end
if suffix == "" then
NY.Parkway.name[abbr] = pkwy
NY.Parkway.link[abbr] = pkwy
NY.Parkway.abbr[abbr] = pkwy
else
NY.Parkway.name[abbr] = pkwy .. " " .. suffix
NY.Parkway.link[abbr] = pkwy .. " " .. suffix
if abbrSuffix ~= "Parkway" then
NY.Parkway.abbr[abbr] = abbr .. " " .. abbrSuffix
end
end
end
end
for _,pkwy in ipairs(pkwyLIPkwys) do
NY.Parkway.bannersuffix[pkwy] = ""
end
for _,pkwy in ipairs(pkwyPIPPkwys) do
NY.Parkway.bannersuffix[pkwy] = "brown"
end
NY.SBR = {
shield = "US Bike %route% (M1-8).svg",
name = "New York State Bicycle Route %route%",
link = "New York State Bicycle Route System#State Bicycle Route %route%",
abbr = "State Bicycle Route %route%",
orientation = "upright"
}
NY.LSEX = {
shield = "LaSalle Expy.svg",
name = "LaSalle Expressway",
link = "LaSalle Expressway",
abbr = "LaSalle Expressway",
bannersuffix = "green"
}
NY.STE = {
shield = "Southern Tier Expressway.svg",
name = "Southern Tier Expressway",
link = "Southern Tier Expressway",
abbr = "Southern Tier Expressway",
bannersuffix = "green"
}
-- add new types above this line if you want it to have the state highway browse
for k, v in pairs(NY) do if k:find ("^%a") then
v.maint = "[[New York State Department of Transportation|NYSDOT]]"
end
end
for k, v in pairs(NY) do if k:find ("^%a+ %d") then
v.maint = "[[New York State Department of Highways|NYSDH]]"
end
end
NY.NYST = {
shield = "NYS Thruway Sign.svg",
name = "New York State Thruway",
link = "New York State Thruway",
abbr = "New York Thruway",
bannersuffix = "blue",
maint = "[[New York State Thruway Authority]]"
}
NY.NYBC = {
shield = "NYS Thruway Sign.svg",
name = "Berkshire Connector",
link = "Berkshire Connector",
abbr = "Berkshire Connector",
bannersuffix = "blue"
}
NY.CR.name = {
arg = "county",
default = "County Route %route%",
Fulton = "County Highway %route%"
}
NY.CR.shield = {
ifexists = true,
arg = "county",
default = "CR %route% jct.svg",
Albany = "CR %route% jct wide.svg",
Broome = {
hook = "splitlen",
split = 3,
below = "CR %route% jct.svg",
above = "CR %route% jct wide.svg"
},
Cayuga = "",
Columbia = {
["21C"] = "CR 21C jct wide.svg",
default = "CR %route% jct.svg"
},
Clinton = "CR %route% jct.svg",
Cortland = "",
Dutchess = {
hook = "splitlen",
split = 3,
below = "CR %route% jct.svg",
above = "CR %route% jct wide.svg"
},
Erie = "Erie County %route% NY.svg",
Franklin = "Franklin County %route% NY.svg",
Fulton = "CR %route% jct wide.svg",
Genesee = "",
Herkimer = "",
Monroe = "",
Montgomery = "",
Nassau = "",
Niagara = "",
Onondaga = {
["57"] = "CR 57 jct.svg",
default = ""
},
Oneida = {
["840"] = "CR 840 jct wide.svg",
default = "CR %route% jct.svg"
},
Ontario = "",
Orleans = "",
Schenectady = "",
Seneca = "",
Steuben = {
["333"] = "CR 333 jct wide.svg",
default = "CR %route% jct.svg"
},
Wayne = "",
Westchester = "",
Wyoming = "",
Yates = ""
}
NY.CR.shieldmain = {
ifexists = true,
arg = "county",
default = "%county% County %route%.svg",
Cayuga = "",
Cortland = "",
Erie = "Erie County %route% NY.svg",
Franklin = "Franklin County %route% NY.svg",
Genesee = "",
Herkimer = "",
Monroe = "",
Montgomery = "",
Nassau = "",
Niagara = "",
Onondaga = {
["57"] = "%county% County %route%.svg",
default = ""
},
Ontario = "",
Orleans = "",
Schenectady = "",
Seneca = "",
Wayne = "",
Westchester = "",
Wyoming = "",
Yates = ""
}
NY.CR.link = "County Route %route% (%county% County, New York)" --ifexist
NY.CR.width = {ifexists = true,
arg = "county",
default = "square",
Albany = "wide",
Columbia = {
["21C"] = "wide",
default = "square"
},
Erie = "16",
Fulton = "wide",
Oneida = {
["840"] = "wide",
default = "square"
},
Steuben = {
["333"] = "wide",
default = "square"
}
}
NY.CR.bannersuffix = {
arg = "county",
Franklin = "green"
}
NY.CR.browse = "[[County routes in New York|County Routes in New York]]"
NY.CR.browselinks = "[[List of county routes in %county% County, New York|County Routes in %county% County]]"
NY["CR-Truck"] = {
shield = NY.CR.shield,
link = NY.CR.link .. " Truck",
abbr = NY.CR.abbr .." Truck",
banner = "Truck plate county.svg",
browse = NY.CR.browse,
browselinks = NY.CR.browselinks
}
NY["CR-Old"] = {
shield = {
ifexists = true,
arg = "county",
default = "CR %route% jct.svg",
Cayuga = "",
Cortland = "",
Erie = "Erie County %route% NY.svg",
Franklin = "Franklin County %route% NY.svg",
Genesee = "",
Herkimer = "",
Monroe = "",
Montgomery = "",
Nassau = "Nassau County %route% NY.svg",
Niagara = "",
Ontario = "",
Orleans = "",
Schenectady = "",
Seneca = "",
Wayne = "",
Westchester = "",
Wyoming = "",
Yates = ""
},
name = NY.CR.name,
link = NY.CR.link,
abbr = NY.CR.abbr,
width = square,
bannersuffix = {
arg = "county",
Franklin = "green",
Nassau = "orange",
},
orientation = {
arg = "county",
Nassau = "upright",
},
browse = NY.CR.browse,
browselinks = NY.CR.browselinks
}
-- add new types above this line if you want it to have the state highway browse
for k, v in pairs(NY) do if k:find ("CR") then
v.maint = "%county% County Highway Department"
end
end
NY.ILR = {
shield = "Rochester Inner Loop.svg",
name = "Inner Loop",
link = "Inner Loop (Rochester)",
abbr = "Inner Loop",
width = "wide",
bannersuffix = "orange",
maint = ""
}
NY.GSP = {alias = {module = "USA/NJ", type = "GSP"}}
NY.CT = {alias = {module = "USA/CT", type = "CT"}}
NY.MATP = {alias = {module = "USA/MA", type = "MATP"}}
NY.NJ = {alias = {module = "USA/NJ", type = "NJ"}}
NY.PA = {alias = {module = "USA/PA", type = "PA"}}
NY.VT = {alias = {module = "USA/VT", type = "VT"}}
NY["I-VT"] = {alias = {module = "USA/VT", type = "I"}}
NY["QC-A"] = {alias = {module = "CAN/QC", type = "A"}}
NY.ON = {alias = {module = "CAN/ON", type = "ON"}}
return NY