osmandapp / OsmAnd

OsmAnd
https://osmand.net
Other
4.73k stars 1.03k forks source link

Alert about "nearby speed camera" devices, even though they are not "properly mapped" #19501

Open Max1234-Ita opened 8 months ago

Max1234-Ita commented 8 months ago

Describe the idea (required)

I'm using OsmAnd since a long-time (12 years or so), and over this time I could interact with many users by providing some help or exchanging opinions.

One of the complaints I've heard most frequently is that OsmAnd "does not warn about speed cameras".

It does, of course, but not for all the devices present in the map; Apart from the lack of mapping, the other reason for speed cameras not being announced is that OsmAnd alerts about them only if they are "properly mapped" in OSM.

In OpenStreetMap, a Speed Camera is "properly mapped" if:

Unfortunately, there are in the map a lot of _highway=speedcamera elements that do not belong to any enforcement relation: I guess that the main reason is because they have been added by inexperienced users or through mapping apps that do not fully support the creation of relations.

I made some query through the Overpass Wizard (https://overpass-turbo.eu):

  1. _highway=speedcamera in Italy --> Got a GeoJSON file containing 4342 _"highway": "speedcamera" elements;
  2. _type=enforcement and (enforcement=maxspeed or enforcement=average_speed or enforcement=trafficsignals) in Italy --> The resulting GeoJSON contained 1929 elements marked with "role": "device"

By doing some maths: 4342 - 1929 = 2413 (!) So, 2413 speed cameras (in Italy) are not properly mapped nor reported by OsmAnd (that's about 55.6%); I tried the same queries for France and the situation was quite better, having about 17% of SC not belonging to any relation (it's 800 elements over 4560, anyway)

So here's my proposal: why not improve speed camera detection by raising an alert also if a _highway=speedcamera element is found within a certain range?

This would have 2 benefits:

  1. Extend the number of object recognized and announced by OsmAnd, improving the app usability, since it would be able to operate als in on-optimal situations.
  2. If the voice prompt and/or the icon used is different from the "standard" one, this might help experienced mappers recognizing the mapping problem and possibly have them to correct those issues.

As a "contra", speed camera announcements made like that might be a bit unreliable, due to the lesser precision of the "nearby" metod vs. the already implemented one (which is good and should remain in use, of course); this would not be worse than the behaviour of other navigation apps, however.

Tell us about the expected behaviour (required)

Tell us about alternatives you've considered (required)

Currently, as a mapper, the only alternative is to hear some user complaining about a speed camera not being announced, go for a check in the map, find that it's not properly mapped (80% of the cases) and add the required enforcement relation.

Unfortunately, implementing a proper mapping requires some experience that not all users have, so in many cases the situation is not being corrected.

As a common user, a possible workaround is to set announcement of nearest POI and choose only speedcam as a POI during the navigation; this adds a level of complexity to the app usage, however.

Context (optional)

Any comment is welcome! (maybe some user will add the Overpass query results for his/her Country)

mariush444 commented 7 months ago

Speedcam has to attachet to road additionally AFAIK.

Max1234-Ita commented 7 months ago

Speedcam has to attachet to road additionally AFAIK.

Nope... unfortunately, in OSM the enforcement is ON the road, the device is a floating node besides the road... in most cases. Anyway it's not necesssarily on the road (and inexperienced users just add the device node and forget the relation).

https://wiki.openstreetmap.org/wiki/Relation:enforcement

_To | one or more - in some cases optional | Node where the enforcement ends. Optional if device and from roles are on the same way. In this case, the device acts as the to member. Required if device and from roles aren't on the same way (e.g., speed camera, turn restriction), to make clear in which direction the enforcement occurs._
vshcherb commented 7 months ago

We plan to implement that feature however as it addressed it's not related to OpenStreetMap data cause there enforcement should indicate start/end point on the road and device is a separate node.

Max1234-Ita commented 7 months ago

We plan to implement that feature however as it addressed it's not related to OpenStreetMap data cause there enforcement should indicate start/end point on the road and device is a separate node.

Yes, this feature is not strictly related to OpenStreet mapping, it's more about bad mapping from inexperienced people or users of "automated mapping" apps (i.e. StreetComplete), which only allow to add the device node but do not create the full enforcement relation.

However, the feature would help a lot those people who use OsmAnd as a pure car/motorbike navigator: knowing that a speedcamera is approaching would be very useful, even though the device it's not perfectly mapped.

pebogufi commented 7 months ago

For that purpose i use this workaround since years and I do not use the "normal" speed camera alert of osmand.

When you have prepared navigation you can set/change the alert distance Open navigation setting/ show along route / point of interest. Now you can change the value "within". Have fun 😉