Skip to content
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

[android][ios][carplay][android-auto] Show speed limit sign on all platforms #952

Open
ccptr opened this issue Jul 29, 2021 · 40 comments
Open
Labels
CarPlay CarPlay Integration Drape Drape OpenGL, Vulkan and Metal graphics rendering engine Navigation Navigator mode, e.g. directions and speed instructions, Nav UI, route drawing

Comments

@ccptr
Copy link

ccptr commented Jul 29, 2021

If the speed limit is known it'd be nice to be able to see it.

@biodranik biodranik added CarPlay CarPlay Integration Navigation Navigator mode, e.g. directions and speed instructions, Nav UI, route drawing labels Aug 11, 2021
@biodranik
Copy link
Member

Even better would be an easy and convenient way to add/improve speed limits along the way :)

@Orejane
Copy link

Orejane commented Aug 12, 2021

EStimation of Arrival Time should be based on speed limit

@biodranik
Copy link
Member

Not every road in OSM has existing speed limit tag set. During the ride you may see the (probably outdated) speed limit, then see nothing. And then see a speed limit again.

@ccptr
Copy link
Author

ccptr commented Aug 19, 2021

EStimation of Arrival Time should be based on speed limit

Is it not?

@Orejane
Copy link

Orejane commented Aug 19, 2021

EStimation of Arrival Time should be based on speed limit

Is it not?

as speed limit does not show I cannot tell it for sure, but my impression is that estimation is wrong in town

@Nic787
Copy link

Nic787 commented Dec 22, 2021

EStimation of Arrival Time should be based on speed limit

Is it not?

as speed limit does not show I cannot tell it for sure, but my impression is that estimation is wrong in town

Remind me of a time in Iceland where the estimated time of a trip was 1h30, but Google Maps was giving me 2h30... Guess who was right...

I guess if speed limit is not known, it could give an average or a way to update OSM speed limit directly into the app?

@alensiljak
Copy link

alensiljak commented Apr 7, 2022

In my opinion, the algorithm must be smarter than just calculating the estimated time based on the speed limits. One will simply never reach the destination in the time given by the speed limit in a residential area. Simply hit one traffic light and you're already off. The traffic lights make a huge difference, apart from the traffic itself. I'm often surprised by the 20-minute estimates when the actual ride to the town takes over one and half hours.

Other than that - please - the speed limit is quite important in the city. Where I live, there is a entangled mix of limits with 30, 50, 70+ speed limits and the signs are not always there. I'm not sure where the OSM guys get that data but I would never figured it out just by looking at the traffic signs. And that is an information overload when in a different town.

Adding the speed limits to OSM through the app would be great but even just showing it in the navigation mode would be a great improvement (would actually make me use the app for navigation).

Edit: elements that affect the travel speed under normal conditions:

  • traffic lights
  • speed bumps
  • pedestrian crossings
  • rail/tram crossings
  • road surface (good luck respecting the 100km/h speed limit on a gravel road)
  • road curvature
  • gates, checkpoints (toll road entrance, for example)
  • on-road traffic

@ccptr
Copy link
Author

ccptr commented Apr 7, 2022

I'm often surprised by the 20-minute estimates when the actual ride to the town takes over one and half hours.

Are you sure OSM has speed limit data for those roads? There were a couple highways in between two towns that I often routed between that didn't have maxspeed set, and as a result OsmAnd took me on some weird routes with completely inaccurate ETAs. That sounds like it's assuming 100 km/h on 30-50 km/h roads or something.

@Talkless
Copy link

Talkless commented Apr 11, 2022

Not every road in OSM has existing speed limit tag set

Maybe it would be possible to incorporate implicit default speed limits database: https://wiki.openstreetmap.org/wiki/Default_speed_limits

Biggest question if, does map processor "knows" if road is urban (within place area) or rural using OSM data?

@AntonM030481
Copy link
Contributor

You can here OSM map here, where each road is marked with it's speed limit (if info is present):
https://www.openstreetbrowser.org/#map=17/50.07620/19.89539&categories=car_maxspeed
You can easily add speed limit there if no info is present.
image

@AntonM030481
Copy link
Contributor

@biodranik so, why not to show the speed limit from OSM data?

@alensiljak
Copy link

alensiljak commented Jun 6, 2022

Perhaps the title should be adjusted to narrow down to showing the speed limit in navigation mode? It would really help driving in the city. Especially now that the routing feel better and the routes are different (and seem better) to other apps that I have, but which also use OSM data.

Also, if you sort the issues by the number of 👍s, this is the most up-voted issue.

@biodranik
Copy link
Member

@AntonM030481 implement it ) it was partially done already.

@bitboy85
Copy link

bitboy85 commented Jun 7, 2022

If a speed limit is known, it should be shown :)
The data might be outdated, but this argument is also true for other parts of the map:
Closed roads, exits, new lanes, new crossings...
If someone notice wrong data, the person is at least able to correct it. (Or making a note on osm)

@AntonM030481
Copy link
Contributor

@biodranik challenge accepted 😄

@biodranik
Copy link
Member

If a speed limit is known, it should be shown :)

The data might be outdated, but this argument is also true for other parts of the map:

Closed roads, exits, new lanes, new crossings...

If someone notice wrong data, the person is at least able to correct it. (Or making a note on osm)

The problem is what to show when the speed limit is not known. An empty circle? A guess?

@alensiljak
Copy link

The problem is what to show when the speed limit is not known. An empty circle? A guess?

Nothing?

@AntonM030481
Copy link
Contributor

AntonM030481 commented Jun 9, 2022

Waze does it like this:
image
If speed limit is unknown - red circle is not shown.

@Talkless
Copy link

The problem is what to show when the speed limit is not known. An empty circle? A guess?

Maybe a transparent, gayish circle with "?" inside of it, but maybe better just don't show it.

@xephos1one
Copy link

xephos1one commented Sep 21, 2022

Biggest question if, does map processor "knows" if road is urban (within place area) or rural using OSM data?

See https://wiki.openstreetmap.org/wiki/Key:zone:traffic and https://wiki.openstreetmap.org/wiki/Key:zone:maxspeed
Also look at relations like https://www.openstreetmap.org/relation/8131479 that define default values like access restrictions and maxspeed for a country.

How to implement it and what at all - I don't know.

And to add a last link: https://wiki.openstreetmap.org/wiki/OSM_tags_for_routing/Maxspeed
It's a different version of the link that already got posted but it might still be helpful.

@tomicdusan
Copy link

Yeah, this is really good to be displayed on screen if you use navi abroad (traveling, etc), pretty please? :)

@pm4rcin
Copy link

pm4rcin commented Oct 30, 2022

@AntonM030481 what stops you from implementing it? Is it lack of free time or you still haven't decided on how it should look (style, size etc.)? If the latter here's my opinion with rationale:

I think that something similiar to Magic Earth's implementation would be best (maybe the size and/or style could be adjusted). Rationale:
When you want to check the speed limit you usually want to see it as fast as possible and focus on driving after seeing it. So it should be the shortest path for eyes. From my experience it's faster to focus on something that's on top because you generally have phone below line eyes and the path to look on right or right with slight down is fast and you don't have to move the eyes to the down corner of your phone (there's probably a paper on that but who cares :D).

@AntonM030481
Copy link
Contributor

@pm4rcin I had implemented basic text version for iOS several releases ago.
But I don't have enough experience yet to upgrade it to graphics and port to Android.

@alensiljak
Copy link

alensiljak commented Nov 4, 2022

Is there a way to use the text version, i.e. in a format [current speed/speed limit] or similar? The need for seeing this information is relatively high, irrespective of the presentation of it. A visual speed-limit sign would be nice but having the information on the dashboard is a priority. If the feature is waiting for nice graphics I'd be all up for having whatever is available right now, and let the work on the visuals happen later.

@biodranik
Copy link
Member

You can check #2963 and implement the same for Android.

@alensiljak
Copy link

Thanks for the tip! I did not really understand the obscure syntax for GetConstructorID, it seems.

Continuing in #3817.

@alensiljak
Copy link

alensiljak commented Nov 5, 2022

Now that the #3817 is more-or-less in place, I see two suggestions:

  1. Add a visual indicator for the speed limit. Eventually a setting that controls the displays of it (on/off).
  2. Indicate overstepping the limit based on a calculation (including a threshold) and indicate with an audio and visual signal. The current speed limit overstepping acts a bit weird, I think.

These can be created and discussed as separate issues, I believe.

@bitboy85
Copy link

Additional suggestions:

  • show speed limit in non-navigation mode
  • unknown speed limits might be represented by a red circle with a question mark or even better: use the countrys default limit for this type of road because many roads in citys or towns are not tagged
  • note that some highways in germany (and maybe other countries) have no limit at all.

@Talkless
Copy link

unknown speed limits might be represented by a red circle with a question mark or even better: use the countrys default limit for this type of road because many roads in citys or towns are not tagged

Not sure if it's easy to distinguish if your'e in city or not?

Maybe show table of speed limits, like ones you see when crossing boarder, showing speed limits for cities, higways, motorways, etc..? Though that might be not that easy to specify too...?

@bitboy85
Copy link

bitboy85 commented Dec 10, 2022

I think its perfectly doable. Osm usually uses administrative bounderies for countries, states, cities... so you need to do 3 things: 1. check if your position is within such an area. 2. During driving check if you cross an administrative boundary (to update rules). 3. Set the information in relation to the road type. For example highways "within" might have no limit.
The needed algo might be already there.

@pm4rcin
Copy link

pm4rcin commented Dec 10, 2022

I think its perfectly doable. Osm usually uses administrative bounderies for countries, states, cities... so you need to do 3 things: 1. check if your position is within such an area. 2. During driving check if you cross an administrative boundary (to update rules). 3. Set the information in relation to the road type. For example highways "within" might have no limit. The needed algo might be already there.

Default limit is not a good idea because it's not like city boundary is the same as the Urban speed limit boundary. In Poland we have green signs for city boundary but the white sings aka Urban area are separate so you can be in the city boundary but outside Urban area (it usually means there aren't homes and pedestrian ways nearby (simplified definition)). Better idea is to add speed limits to missing roads. To view them check Anton's link.

@Talkless
Copy link

In Poland we have green signs for city boundary but the white sings aka Urban area are separate

Good point. In Lithuania, blue signs means there's no city limit while crossing urban area, white signs means you go at 50.

@biodranik biodranik removed the CarPlay CarPlay Integration label Feb 28, 2023
@biodranik
Copy link
Member

At the moment, only CarPlay has implemented the speed limit properly:
image

iPhone shows the speed limit in the bottom left corner. Android doesn't show it at all.

It would be great to use the same approach as is used in CarPlay everywhere.

@biodranik
Copy link
Member

CarPlay and Android Auto display speed limit properly (@AndrewShkrob right?)

iOS displays the speed limit near the current speed, at the left bottom of the screen (in LTR mode), and changes its color to red if the speed limit exceeds the allowed one.

At least the same "minimal" implementation for Android is very desirable until we find resources to redesign the UI properly. Any volunteers?

@AndrewShkrob
Copy link
Member

Android Auto doesn't support speed limit. We need to render it manually.

@biodranik
Copy link
Member

@AndrewShkrob is there a separate issue for speed limit in AA?

@oleg-rswll
Copy link

Related to #6560

@rtsisyk rtsisyk changed the title Show speed limit [android][ios][carplay][android-auto] Show speed limit sign on all platforms Dec 29, 2023
@rtsisyk rtsisyk added Android Android development iOS iOS development Drape Drape OpenGL, Vulkan and Metal graphics rendering engine CarPlay CarPlay Integration labels Dec 29, 2023
@rtsisyk
Copy link
Contributor

rtsisyk commented Dec 29, 2023

Let's keep this ticket for synchronizing the speed limit visualization on all platforms.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CarPlay CarPlay Integration Drape Drape OpenGL, Vulkan and Metal graphics rendering engine Navigation Navigator mode, e.g. directions and speed instructions, Nav UI, route drawing
Projects
Status: No status
Development

No branches or pull requests