Skip to content

Adding vehicle icons & brand information #330

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

Merged
merged 10 commits into from
Sep 3, 2021
Merged

Adding vehicle icons & brand information #330

merged 10 commits into from
Sep 3, 2021

Conversation

mplsmitch
Copy link
Collaborator

What problem does your proposal solve? Please begin with the relevant issue number. If there is no existing issue, please also describe alternative solutions you have considered.

Currently the specification lacks any type of branding assets or ways to graphically represent vehicles. Some consuming applications have expressed a need for Icons and/or other brand related information to represent the mobility services that they aggregate.

What is the proposal?

This proposal adds fields to system_information.json and vehicle_types.json to support brand information and vehicle icons. This issue has been discussed in #317. I have modified some of the field names to increase readability and avoid confusion between the endpoints. I also added a last modified field for both brand assets and vehicle icons. This data is important for consuming applications that cache images so that cached images aren't out of date. We discussed other ways of handling modification dates but none of them seemed as reliable as the addition of dedicated fields.

Is this a breaking change?

  • Yes
  • No
  • Unsure

Which files are affected by this change?

gbfs.md:

  • system_information.json
  • vehicle_types.json

Mitch Vars added 3 commits June 4, 2021 10:34
Adds fields to system_information and vehicle_types in support of graphic files to represent system brand and vehicle icons
@mplsmitch mplsmitch mentioned this pull request Jun 9, 2021
3 tasks
Changes last_modified types from string to date
gbfs.md Outdated
@@ -350,6 +350,12 @@ Field Name | REQUIRED | Type | Defines
`license_url` | Conditionally REQUIRED <br/>*(as of v3.0-RC)* | 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](https://creativecommons.org/publicdomain/zero/1.0/legalcode). *(as of v3.0-RC)*
`attribution_organization_name` <br/>*(added in v3.0-RC)* | OPTIONAL | String | If the feed license requires attribution, name of the organization to which attribution should be provided.
`attribution_url` <br/>*(added in v3.0-RC)* | OPTIONAL | URL | URL of the organization to which attribution should be provided.
`brand_assets` | Optional | Object | An object where each key defines on of the items listed below.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo: on -> one.

@draperunner
Copy link

Hi! Looking forward to having brand assets as part of the standard!

I am a bit skeptical to the proposed properties on vehicle_types (icon_url, icon_url_dark, icon_last_modified), if I understood their purpose correctly. I have some trouble seeing when people would use these and why they should be part of the GBFS.

We are developing client apps that consume GBFS feeds from different systems and display them in a map. We want a consistent design on these that match our own design. I don't think we would or could rely on the icons provided by the feed providers for such a use case.

The system brand assets are OK, since they are "objective, universal facts" tied to the data (provider), no matter how things are displayed in consuming apps. You cannot argue that Lime's logo is Lime's logo, etc.

The icons on the other hand are more related to design than data. And the desired design of applications and display of vehicles/stations will vary for every application.

The specification can also be misunderstood: "A fully qualified URL pointing to the location of a graphic icon file to be used to represent this vehicle type on maps and in other applications". Does this mean that I, as an app developer, MUST use the specified icon_url to represent this vehicle type in my app? Or that I MAY use it if I want to?

Suggestion: Don't add the proposed icon properties to vehicle_types, at least not at this time. Let users decide how to display the data in their own apps, using logos from brand_assets if desired.

Adding @kanagy's original propsal for these props from #317 here:

In future proposals it would be useful to also have icons for different vehicle types (these typically appear on the map in bikesharing apps), e.g. a branded scooter icon, a bike icon, an electric bike icon. Any suggestions of where these should live? In system_information or in vehicle_types feed?

Fixes typo adn clarifies OPTIONAL use of vehicle type icons
@mplsmitch
Copy link
Collaborator Author

I agree that data consumers might prefer to decide how to represent vehicles in their applications as opposed to using graphics supplied by the publishers, however this proposal comes about in response to requests from data consumers for these assets so there's reason to believe that they will be used. On the consuming side, whether or not to use these assets is optional. I've updated the definition of icon_url to make this explicit:

a graphic icon file that MAY be used to represent this vehicle type

As a data consumer you can choose to use them or not, as is true with most everything in the specification.

@kanagy
Copy link

kanagy commented Jul 1, 2021

We currently cutomize vehicle or station icons on the map for ridesharing and some GBFS integrations. AFAIK this is because producers tend to care about branding - customizing their experience and visually distinguishing it from other competitiors listed. I can also think of a use-case which shows a map with all the available providers around you; here it might be useful to visually distinguish vehicles and stations beyond just using the brand color.

It does add a layer of complexity though - e.g. checking if the icon plays well with the consumer app scheme. Are there other consumers that are interested in these icons? We'll discuss this more internally.

In meantime, I suggest also wrapping the vehicle type assets into a brand_assets message.

@mplsmitch
Copy link
Collaborator Author

@kanagy

In meantime, I suggest also wrapping the vehicle type assets into a brand_assets message.

Are you suggesting something like this?

"vehicle_assets" : {
"icon_url": "https://www.example.com/assets/icon_bicycle.svg",
"icon_url_dark": "https://www.example.com/assets/icon_bicycle_dark.svg",
"icon_last_modified": "2021-06-15"
}

@kanagy
Copy link

kanagy commented Jul 5, 2021

Yes.

Mitch Vars added 2 commits July 6, 2021 14:25
Adds wrapper object vehicle_assets to
@mplsmitch
Copy link
Collaborator Author

I've wrapped the icon fields in vehicle_types in a vehicle_assets object per @kanagy's suggestion.

@heidiguenin heidiguenin added proposal:nonbreaking v2.3 Candidate change for v2.3 (minor release) labels Aug 16, 2021
@mplsmitch
Copy link
Collaborator Author

I hereby call a vote on this proposal.

Voting will be open for 10 full calendar days until 11:59PM UTC on September 1st, 2021.

Please vote for or against the proposal, and include the organization for which you are voting in your comment.

Please note if you can commit to implementing the proposal.

@kanagy
Copy link

kanagy commented Aug 23, 2021

Google Maps supports this and intends on using these fields (initially to just manually get, check and ingest the assets).

@yocontra
Copy link
Contributor

+1 from Stae

@nbdh
Copy link
Contributor

nbdh commented Aug 26, 2021

So to represent free floating vehicles, consumers shall display the icon of the corresponding vehicle type. But how are stations (with potentially vehicles of multiple types) supposed to be pictured?

@mplsmitch
Copy link
Collaborator Author

@nbdh use of these icons would be optional, so it's up to the consumer to decide how they want to display the data. In the case of a station the vehicle icons could be used to show the number of each type of vehicle at the station. Selecting a station would display the icons for each vehicle type and their respective totals. We could also add a station_icon field in the future if there's a need for one.

@nbdh
Copy link
Contributor

nbdh commented Aug 26, 2021

We could also add a station_icon field in the future if there's a need for one.

This seems sensible, though this opens many more questions. Will the station_icon become part of the brand_assets? This would mean a single icon for all stations of the system - or is there potentially even the need for multiple icons, depending on the type of the station, e.g. to display a station that supports charging (#340) differently. This of course probably is better to be discussed elsewhere.

So from my point of view this seems rather like a start in the "branding and icons" topic that probably needs to be extended at some point.

Nonetheless we support the proposal, though I can't tell when we will start publishing this info.

@viestat
Copy link
Contributor

viestat commented Aug 27, 2021

Dott supports this proposal, might implement this in the future.

@testower
Copy link
Contributor

Entur supports this proposal and will implement it in our aggregation service

@evansiroky
Copy link
Contributor

IBI Group supports this proposal.

@ncancelliere
Copy link

Spin support this proposal. We currently advertise some assets, so we likely will implement this and update our feeds to match this standard.

@ezmckinn
Copy link
Contributor

ezmckinn commented Sep 1, 2021

Superpedestrian supports this proposal and will implement it.

@josee-sabourin
Copy link
Contributor

josee-sabourin commented Sep 2, 2021

This vote is now closed, and it passes!

Votes in favour:
Google Maps (consumer)
Stae (consumer)
Nextbike (producer)
Dott (producer)
Entur (consumer)
IBI Group (consumer)
Spin (producer)
Superpedestrian (producer)

There we no votes against.

These changes will be merged into a v2.3-RC pending implementation.

Mitch Vars added 3 commits September 3, 2021 08:24
Changes brand asset terms_url to brand_terms_url to avoid conflict with terms of use terms_url
@mplsmitch mplsmitch merged commit 87db9f8 into master Sep 3, 2021
@josee-sabourin josee-sabourin mentioned this pull request Sep 8, 2021
3 tasks
@heidiguenin heidiguenin mentioned this pull request Dec 9, 2021
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gbfs.md proposal:nonbreaking v2.3 Candidate change for v2.3 (minor release) Vote Passed
Projects
None yet
Development

Successfully merging this pull request may close these issues.