Skip to content

Conversation

@skinkie
Copy link
Contributor

@skinkie skinkie commented Sep 29, 2017

No description provided.

@RachM
Copy link
Contributor

RachM commented Oct 3, 2017

Custom icons would be great for users, but one concern I have is that different consumers will likely have different guidelines that the icons must meet. For example, at Google we'd need multiple versions of an icon in varying sizes, formats and potentially foreground colors. To see what I mean, have a look at the 'Maps' icons at https://material.io/icons/.

We'd probably need the url to point to an icon set/package (maybe have them all zipped?), where the icons are named such that consumers know which ones they want. This would have to be documented in the spec.

Also, what happens when a consumer needs a new icon that isn't in the set? How would they go about getting it added?

@skinkie
Copy link
Contributor Author

skinkie commented Oct 3, 2017

It might be a good practise to define the requirement for a vector resource, in a specific aspect ratio. But I agree, this is a discussion we must have. Then again, favicons gracefully solve this problem, so we could make it complex or just define the intent by an URI, where the consumer knows that the URI is the intent and local resources may replace it.

@barbeau
Copy link
Contributor

barbeau commented Oct 5, 2017

I agree that multiple icons would be needed. I think we'd also need to give very specific examples of how the icons are used.

@RachM It looks like Google Maps shows some agency-specific icons on the map tiles - see San Francisco BART example below:

image

Does Google have a standard template icon set that they ask agencies for? Or is this done more on an ad-hoc basis?

I was thinking if Google can share this template it would be a good starting point, especially if multiple agencies are already sharing icons in this format.

If not, maybe the best way to approach this is to look at the specific use cases in apps (e.g., stop icons on map tiles) and back into a generic format from there, and then see if agencies are able to provide this.

@RachM
Copy link
Contributor

RachM commented Oct 11, 2017

Good question @barbeau - I will find out and report back.

@LeoFrachet
Copy link
Contributor

Maybe pointing to vectorial icon, like an .svg, could be a solution. On WikiMedia you can either access the .svg or the .png (when the .svg is available).

Example for the bullet of the Paris Subway Line 1:

As .svg:
https://upload.wikimedia.org/wikipedia/commons/f/f4/Paris_m_1_jms.svg

As .png, width 200px:
https://upload.wikimedia.org/wikipedia/commons/thumb/f/f4/Paris_m_1_jms.svg/200px-Paris_m_1_jms.svg.png

@RachM
Copy link
Contributor

RachM commented Dec 20, 2017

Reporting back:

  • Customisation of icons is done on a case-by-case basis, so unfortunately I don't have a set of guidelines for you
  • We require a few different sizes, so svg would be a good solution
  • Transparent background is ideal

@barbeau barbeau added the GTFS Schedule Issues and Pull Requests that focus on GTFS Schedule label Aug 27, 2018
@barbeau barbeau mentioned this pull request Apr 27, 2021
@stevenmwhite
Copy link
Contributor

Posting the same comment I did over on #269 because we closed that one.

I think generally there's an agency "logo" that represents the agency, but it may not be the icon/symbol that represents their services. One agency may have multiple services with distinct brands (circulators vs commuter routes, or rapid vs local) so perhaps the service icons should be defined at the route level? Both are important, and the route-level icons could be treated as an override to the agency-level one. For many agencies, just the single agency-level logo/icon will suffice.

@skinkie
Copy link
Contributor Author

skinkie commented Apr 27, 2021

@stevenmwhite we have a regular discussion if agency.txt is actually used as "brands.txt" since many map service providers only have a single way to distinguish between "the operator" and "the product formula". Further complexity is observed when "the authority" that hires the "the operator" wants to be the brand visible. The solution is not about route level, because routes on their own can have different branding styles which are currently being facilitated by line color et al. In addition even a direction (headsign) may have a distinct icon which GTFS does not support as as normalised concept, rather only as denormalised trip_headsign.

@stale
Copy link

stale bot commented Aug 21, 2021

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the Status: Stale Issues and Pull Requests that have remained inactive for 30 calendar days or more. label Aug 21, 2021
@stale
Copy link

stale bot commented Aug 28, 2021

This pull request has been closed due to inactivity. Pull requests can always be reopened after they have been closed. See the Specification Amendment Process.

@stale stale bot closed this Aug 28, 2021
@skinkie
Copy link
Contributor Author

skinkie commented Aug 28, 2021

Keep open.

@skinkie skinkie mentioned this pull request Sep 8, 2021
@sccmcca sccmcca reopened this Sep 9, 2021
@stale stale bot removed the Status: Stale Issues and Pull Requests that have remained inactive for 30 calendar days or more. label Sep 9, 2021
@github-actions
Copy link

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the Status: Stale Issues and Pull Requests that have remained inactive for 30 calendar days or more. label Nov 23, 2021
@skinkie
Copy link
Contributor Author

skinkie commented Nov 23, 2021

Keep open.

@github-actions github-actions bot removed the Status: Stale Issues and Pull Requests that have remained inactive for 30 calendar days or more. label Nov 24, 2021
@github-actions
Copy link

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the Status: Stale Issues and Pull Requests that have remained inactive for 30 calendar days or more. label Dec 18, 2021
@skinkie
Copy link
Contributor Author

skinkie commented Dec 18, 2021

Keep open.

@sccmcca
Copy link
Contributor

sccmcca commented Dec 18, 2021

@skinkie Is there something actionable to work on for this proposal (i.e., working through solutions, listing producers/consumers, calling a vote)? I think that would be a more effective way to advocate.

@github-actions github-actions bot removed the Status: Stale Issues and Pull Requests that have remained inactive for 30 calendar days or more. label Dec 19, 2021
@gcamp
Copy link
Contributor

gcamp commented Dec 24, 2021

This is generally not something we could use directly because we have specific requirement that don't make sense to be in the specification (mono-color, some specific code to use the route color inside the image, height requirements, etc).

However, we could use those fields are "good default" that we base ourselves on for the final value that will be used in the app. Would that be enough to be considered as a "consumer"? We use route_color the same way because we modify it most of the time for our context.

Other comments :

  • Heavy +1 to enforce SVG
  • Some guidelines/best practice on the level of details that is required on the image would be good.
  • I think we need some additional field to define if the image is enough to represent the route by itself. Images on routes are often stylized text with the same content as route_short_name, we need a way to know if we should show the route_short_name in addition to the image or not. Same to know if the color is embedded inside the image or it should be shown in addition.

@skinkie
Copy link
Contributor Author

skinkie commented Mar 7, 2022

Keep open.

@github-actions github-actions bot removed the Status: Stale Issues and Pull Requests that have remained inactive for 30 calendar days or more. label Mar 8, 2022
@github-actions
Copy link

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the Status: Stale Issues and Pull Requests that have remained inactive for 30 calendar days or more. label Mar 31, 2022
@skinkie
Copy link
Contributor Author

skinkie commented Mar 31, 2022

Keep open.

@github-actions github-actions bot removed the Status: Stale Issues and Pull Requests that have remained inactive for 30 calendar days or more. label Apr 1, 2022
@github-actions
Copy link

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the Status: Stale Issues and Pull Requests that have remained inactive for 30 calendar days or more. label Apr 25, 2022
@skinkie
Copy link
Contributor Author

skinkie commented Apr 25, 2022

Keep open.

@github-actions github-actions bot removed the Status: Stale Issues and Pull Requests that have remained inactive for 30 calendar days or more. label Apr 26, 2022
@Bertware
Copy link

Bertware commented May 2, 2022

The allowed image formats should be defined, and in case that formats other than SVG are allowed, a recommended image size could help as well to prevent big differences in image size/quality between feeds. Agree with @gcamp that SVG would be ideal.

@skinkie
Copy link
Contributor Author

skinkie commented May 2, 2022

While I generally agree that SVG is the ultimate format for these things. It only works (well) from a minimum dpi. Let's say the 16x16 icon you see on a map is very difficult to achieve with SVG, because it requires pixel alignment prior to rasterization. I am sure we can work out the best way to do this.

@github-actions
Copy link

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the Status: Stale Issues and Pull Requests that have remained inactive for 30 calendar days or more. label Jun 13, 2022
@github-actions
Copy link

This pull request has been closed due to inactivity. Pull requests can always be reopened after they have been closed. See the Specification Amendment Process.

@github-actions github-actions bot closed this Jun 21, 2022
@felixguendling
Copy link

felixguendling commented Oct 20, 2025

GBFS has this in system_information.json. Since this approach seems to work well for GBFS, it could work for GTFS as well?

Field Name REQUIRED Type Defines
license_id
(added in v3.0)
Conditionally REQUIRED String REQUIRED if the dataset is provided under a standard license. An identifier for a standard license from the SPDX License List. Provide license_id rather than license_url if the license is included in the SPDX License List. See the GBFS wiki for a comparison of a subset of standard licenses. If the license_id and license_url fields are blank or omitted, this indicates that the feed is provided under the Creative Commons Universal Public Domain Dedication.
license_url Conditionally REQUIRED
(as of v3.0)
URL REQUIRED if the dataset is provided under a customized license. A fully qualified URL of a page that defines the license terms for the GBFS data for this system. Do not specify a license_url if license_id is specified. If the license_id and license_url fields are blank or omitted, this indicates that the feed is provided under the Creative Commons Universal Public Domain Dedication. (as of v3.0)
attribution_organization_name
(added in v3.0)
OPTIONAL Array<Localized String> If the feed license requires attribution, name of the organization to which attribution should be provided.
attribution_url
(added in v3.0)
OPTIONAL URL URL of the organization to which attribution should be provided.
brand_assets
(added in v2.3)
OPTIONAL Object Object containing branding information about the system.
brand_assets.brand_last_modified
(added in v2.3)
REQUIRED Date Date that indicates the last time any included brand assets were updated or modified.
brand_assets.brand_terms_url
(added in v2.3)
OPTIONAL URL A fully qualified URL pointing to the location of a page that defines the license terms of brand icons, colors, or other trademark information. This field MUST NOT take the place of license_url or license_id.
brand_assets.brand_image_url
(added in v2.3)
REQUIRED URL A fully qualified URL pointing to the location of a graphic file representing the brand for the service. File MUST be in SVG V1.1 format and MUST be either square or round.

While I generally agree that SVG is the ultimate format for these things. It only works (well) from a minimum dpi. Let's say the 16x16 icon you see on a map is very difficult to achieve with SVG, because it requires pixel alignment prior to rasterization. I am sure we can work out the best way to do this.

Maybe this could be solved by adding a 16x16 URL field? This could be another PR to keep things simple for now.

Edit: I am re-starting this discussion because we would like to bring icons into Transitous and MOTIS and of course it would be nice to not do a custom solution that works only for us if there could also be a solution that would help the whole ecosystem.

@skinkie
Copy link
Contributor Author

skinkie commented Oct 20, 2025

It might be but only as part of agency.txt, not feed_info.txt.
Then again, this was a very clean proposal, and I think we should just ask mobility data to open it again, and bring it to a vote.

@etienne0101
Copy link
Collaborator

Thanks for bringing this up, @felixguendling. I suggest opening a new pull request just for the icon, and referencing this issue in the description.

@skinkie
Copy link
Contributor Author

skinkie commented Oct 20, 2025

@etienne0101 why don't you just reopen it?

@etienne0101
Copy link
Collaborator

@etienne0101 why don't you just reopen it?

@skinkie It is an 8 year-old issue, so a new one makes it easily accessible from the first page on Github.

@skinkie
Copy link
Contributor Author

skinkie commented Oct 21, 2025

Nonsense.

@felixguendling
Copy link

I think opening a new issue for discussion will produce duplicates which is something to be avoided. Having only one place where one topic is discussed is the best approach IMO. Sorting by "last updated" is just two clicks away.

Anyway, we're discussing a concrete proposal at #585, so I would like everyone to join the discussion there and I will continue to update the proposed changes to reflect the results of our discussion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

GTFS Schedule Issues and Pull Requests that focus on GTFS Schedule Status: Stale Issues and Pull Requests that have remained inactive for 30 calendar days or more.

Projects

None yet

Development

Successfully merging this pull request may close these issues.