-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add shields for Nova Scotia scenic drives #912
Add shields for Nova Scotia scenic drives #912
Conversation
src/js/shield_defs.js
Outdated
@@ -4201,6 +4204,33 @@ export function loadShields() { | |||
|
|||
// Ref-specific cases. Each entry should be documented in CONTRIBUTE.md | |||
|
|||
shields["CA:NS:S"].overrideByRef = { | |||
BdOLSD: { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do people or publications normally refer to the routes by these initialisms? If so, let’s add an explanation to CONTRIBUTING.md, in the section where we justify other unsignposted refs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think so, I just made up the initialisms so we'd have something to key off of. I don't think we can key off the route name because I thiiiiink the name on the tile comes only from the way itself. The Merritt Parkway is the only one we do like that so far and it happens to have all way names match the parkway relation name.
This situation is kind of like the Great Lakes Circle Tour routes, but with a more items and less documentation. I imagine the problem will come up more often as we add additional networks of scenic routes.
I can add documentation for this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For #451, the New Zealand community apparently decided to give each route a distinct network
subvalue in order to avoid polluting ref
with unsignposted initialisms. However, this fragmentation makes less sense when the shield designs all follow a common motif, as in this case.
I think inevitably we’ll need the tiles to contain something beyond the network=ref
syntax in route_*
properties. If we could go back and change the format, I would’ve suggested something like route:2:network
or route_network_2
, which would’ve also logically allowed for route_name_2
or even route_wikidata_2
for these tricky cases.
In the meantime, unsignposted initialisms are unfortunately a fact of life in ref
s in many parts of the world. If the local mappers are OK with it, then we can go along with it for now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This situation is kind of like the Great Lakes Circle Tour routes, but with a more items and less documentation.
The Great Lakes Circle Tour routes are known by the initialisms in ref
, at least informally, so it isn’t a big deal if a non-shield-capable renderer displays the ref
verbatim. I’d still reach out to the local community to get their opinion on this use of ref
, in case there are more established initialisms for the routes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regarding the choice of ref on bespoke tourist routes, don't we have
overrideByName
as an option? Then we would be tied to the name, which should be beyond dispute. In any case, the choice ofref
value on the route relation of an obscure tourist route seems like something we can just make up using reasonable conventions and change later if the community changes their mind down the line. In short, I'd favor pushing this forward either as-is or with a name-based definition.
@ZeLonewolf overrideByName
was introduced for the Kentucky parkways. I agree that it would be an ideal solution… except that the name
is just the way name, not the route relation’s name. For tourist routes, the road name isn’t reliably the route relation’s name, although it is in the case of the Cabot Trail.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, makes sense to me - thanks for refreshing how that works. I built the damn logic for those route_X
attributes and I can't even keep it straight...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let’s ticket out something about a route_#_name
scheme in OpenMapTiles. Something similar would also help with Spain’s per-route colors in #654.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As of #1032, each feature has a route_#_name
property based on the route relation. The name gets plumbed through to the shield selection code, so you should be able to specify overrideByName
without worrying about the roadway carrying a different name, and the relations no longer need to be tagged with initialisms as ref
s.
icons/shield_ca_ns_s_md.svg
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if a few of these shields would be more legible if we don’t need to offset them to the left but can instead have them take up more space to the top and right.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, we could make the pictures slightly bigger by centering then and moving the water down. But personally I think I prefer sticking closer to the source designs. Though maybe seeing them on the map will affect this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, we’ll see how it turns out on the map. For the Ohio River Scenic Byway in #893, I made the shield 20 pixels wide but taller than 20 pixels, avoiding whitespace on either side, in order to maximize room for the shield’s details.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The current shield for network=CA:NS:H
is only 20px tall because we made it before relaxing the height guidelines for narrow shields. I think the designs introduced in this PR are good for now. If we want to enlarge them later, along with the Arterial shield, let's put that in a new issue.
Tiles are updated! |
Either the 17px or the 18px versions look pretty good to me in the screen shots. I agree that the 16px one seems slightly undersized. |
I standardized on 17x21 px shields. I couldn't find any signage for the Fundy Shore Scenic Drive but otherwise this is complete and ready for review. FYI there was a |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These icons seem to hew to an 8-bit style, which happens to look great for these particular shields. I wonder if we should aim for a similar style in other shields, where we’re currently going for a very literal, realistic look and feel.
src/js/shield_defs.js
Outdated
@@ -4201,6 +4204,33 @@ export function loadShields() { | |||
|
|||
// Ref-specific cases. Each entry should be documented in CONTRIBUTE.md | |||
|
|||
shields["CA:NS:S"].overrideByRef = { | |||
BdOLSD: { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This situation is kind of like the Great Lakes Circle Tour routes, but with a more items and less documentation.
The Great Lakes Circle Tour routes are known by the initialisms in ref
, at least informally, so it isn’t a big deal if a non-shield-capable renderer displays the ref
verbatim. I’d still reach out to the local community to get their opinion on this use of ref
, in case there are more established initialisms for the routes.
Regarding the choice of ref on bespoke tourist routes, don't we have |
This is ready for review btw. The discussion kind of got lost in the code comments but I think everything's been addressed. |
spriteBlank: "shield_ca_ns_s_st", | ||
}, | ||
}; | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FSSD appears to be missing:
https://www.openstreetmap.org/relation/11147926
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The FSSD is documented on Wikipedia but I couldn't find any signage for it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good pending the fix for FDLT. We can either add FSSD here or in a separate ticket.
So if I understand correctly |
I wouldn't go so far as to say an initialism isn't a real identifier, but yes, these
Agreed that something cleaner upstream would be nice, that there will be more cases in the future, and that this is the kind of issue Americana could push the envelope on. But personally I think this is a "perfect is the enemy of good" scenario and would move forward as-is. We can improve the system later. But up to y'all. |
I also would consider it such a scenario if this was a fully self contained project. However, we are just one part of the OSM ecosystem, and I don't think we want to be seen as a project that supports questionable tagging practices. The stakes are quite low in this case, but I think it would be best to wait for a proper solution in OpenMapTiles. |
I think openmaptiles/openmaptiles#1576 is not that far off, if the team is on board with that approach. While testing it, I did find a pretty major bug in openmaptiles that's causing a massive reduction in shields from z11 and lower. So my plan is to fix that issue and then push 1576 along. Since it's been a very long time since the last openmaptiles release, I'm led to believe we're not that far off from a proper solution for ref-less routes. |
Okay, the prerequisite is done. I could use some design help in figuring out what the implementation for openmaptiles/openmaptiles#1576 should actually do to support these use cases. |
Looks like the deploy preview is hit by actions/first-interaction#10. I'll plan to do some research as to how that can be resolved. |
The CI issues have been resolved. The schema update remain unresolved. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From my perspective, the artwork in this PR is ready to ship, so the only thing that needs to change is migrating from overrideByRef
to overrideByName
.
src/js/shield_defs.js
Outdated
@@ -4201,6 +4204,33 @@ export function loadShields() { | |||
|
|||
// Ref-specific cases. Each entry should be documented in CONTRIBUTE.md | |||
|
|||
shields["CA:NS:S"].overrideByRef = { | |||
BdOLSD: { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As of #1032, each feature has a route_#_name
property based on the route relation. The name gets plumbed through to the shield selection code, so you should be able to specify overrideByName
without worrying about the roadway carrying a different name, and the relations no longer need to be tagged with initialisms as ref
s.
I've changed this to use |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for sticking this one out! Looks awesome! |
Thanks for running a project that improves tooling and sees things through even if it takes eight months! |
Closes #911.
Creating a draft for sprite design feedback. Waiting for a tile refresh to review how these look on the map.