streetcomplete / StreetComplete

Easy to use OpenStreetMap editor for Android
https://streetcomplete.app
GNU General Public License v3.0
3.89k stars 355 forks source link

Colored curbs are mistagged in California #3663

Closed 1ec5 closed 2 years ago

1ec5 commented 2 years ago

StreetComplete’s parking lane quest (#771) appears to have assigned incorrect curb colors for California:

https://github.com/streetcomplete/StreetComplete/blob/eacf5dc777b2d329a2bfdca258b113e9104bcd29/app/src/main/assets/country_metadata/US-CA.yml#L3-L5

California’s curb colors are regulated by the California Vehicle Code and also described by the California DMV:

White–Stop only long enough to pick up or drop off passengers or mail.

Green–Park for a limited time. Look for a posted sign next to the green zone for time limits, or locate the time limit painted on the curb.

Yellow–Stop no longer than the time posted to load or unload passengers or freight. Drivers of noncommercial vehicles are usually required to stay with the vehicle.

Red–No stopping, standing, or parking (buses may stop at a red zone marked for buses).

Blue–Parking is permitted only for a disabled person or driver of a disabled person who displays a placard or special license plate for disabled persons or disabled veterans. A crosshatched (diagonal lines) area adjacent to a designated disabled parking space is a no parking area.

The curbs are color-coded based on the signs:

Curb color Road sign Example in San José Tagging
#ffffff R25B
R25H
R24D
San Fernando St. parking:condition=no_standing
parking:condition:reason=passenger_loading_zone
#006747 R32 The Alameda parking:condition=free/ticket
#ffcd00 R25A S. Market St. parking:condition=no_standing
parking:condition:reason=loading_zone
#bf2033 R26 R26(S) Race St., Cahill St. parking:condition=no_parking/no_stopping
#003f87 R99 S. Market St. parking:condition=disabled

Both white and yellow correspond to no_standing, just for different reasons. California uses the term “loading” instead of “standing”.

Red corresponds to either no_parking or no_stopping. I can see how the legal code makes it sound like red is for places where a car may not either stop or park, but at least in practice, it’s used for places where there is either a prohibition against stopping or a prohibition against parking. I think we can be reasonably confident that the words “No Parking” or “No Stopping” will always be posted on an accompanying sign or stenciled onto the curb or pavement.

/ref https://github.com/streetcomplete/StreetComplete/issues/771#issuecomment-1017815330

westnordost commented 2 years ago

Depends on the definition of no_parking / no_standing. The definition for "no parking" in Germany is

Wer ein Fahrzeug führt, darf nicht länger als drei Minuten auf der Fahrbahn halten, ausgenommen zum Ein- oder Aussteigen oder zum Be- oder Entladen. 2. Ladegeschäfte müssen ohne Verzögerung durchgeführt werden.

No person driving a vehicle shall stop on the roadway for more than three minutes, except to [let other people] enter or exit the vehicle or to load or unload. 2. loading operations must be carried out without delay.

So, stopping 3 minutes max or for loading and unloading goods or for loading and unloading passengers.

A "passenger loading zone" is more restrictive, because it implies that the driver may not exit his vehicle. But a "loading zone" ist not more restrictive, which is why I'd interpret this as "no parking". Note also that the "loading zone" sign doesn't say anything about no standing or no parking. Given that "no standing" is more restrictive than "no parking", and a time limit of 30 minutes is somewhat gracious, I'd firmly put the "no loading" sign into the "no parking" category.

The legislation text you cited also does not mention that the red curb could imply a "no parking" sign, it reads

Red–No stopping, standing, or parking (buses may stop at a red zone marked for buses).

So, I read here that red means: neither stopping, nor standing, nor parking

1ec5 commented 2 years ago

First of all, I hope it’s clear that the curb colors are intended to match the colors of the signs, so StreetComplete should be consistent in how it interprets signs versus curbs. If that isn’t clear yet, I can elaborate.

Depends on the definition of no_parking / no_standing. The definition for "no parking" in Germany is

Wer ein Fahrzeug führt, darf nicht länger als drei Minuten auf der Fahrbahn halten, ausgenommen zum Ein- oder Aussteigen oder zum Be- oder Entladen. 2. Ladegeschäfte müssen ohne Verzögerung durchgeführt werden.

No person driving a vehicle shall stop on the roadway for more than three minutes, except to [let other people] enter or exit the vehicle or to load or unload. 2. loading operations must be carried out without delay.

So, stopping 3 minutes max or for loading and unloading goods or for loading and unloading passengers.

That would be a specific exemption in German law, but it isn’t the essential distinction between one parking regulation category or another. The specifics of loading zone regulations will differ from country to country (and from state to state), but what’s important is that we remain able to distinguish the major categories in each country.

In the U.S., we have every reason to map according to the signs or pavement markings. It would be untenable to expect mappers to contradict the plain meaning of a sign based on a technicality that arises when comparing a U.S. legal code to the German legal code, which was only associated to the same tag by convention. Comparing the CVC to a German legal code is also fraught because California is a common law jurisdiction. Statutory law carries different weight and is interpreted and enforced differently.

A "passenger loading zone" is more restrictive, because it implies that the driver may not exit his vehicle. But a "loading zone" ist not more restrictive, which is why I'd interpret this as "no parking".

To the extent that a vehicle may drop off passengers at a no parking zone, it would be a minor point compared to the main restriction against parking. But a loading zone is solely dedicated to loading and unloading. Conflating the two would be akin to calling a supermarket a butcher’s shop just because it has a meat department.

Whereas the national MUTCD defines “standing” as “keeping the vehicle in a stationary position while continuing to occupy the vehicle”, neither the CVC nor the CA MUTCD requires the driver to remain inside the vehicle while loading and unloading, just that they not wait around idly. In California, this is the essence of a loading zone, not a technicality. In fact, the only difference between the white and yellow loading zones is that yellow loading zones additionally allow vehicles with a commercial license plate (i.e., goods and hgv) to actively load and unload goods for a longer period than passenger vehicles using the same space.

Note also that the "loading zone" sign doesn't say anything about no standing or no parking. Given that "no standing" is more restrictive than "no parking", and a time limit of 30 minutes is somewhat gracious, I'd firmly put the "no loading" sign into the "no parking" category.

We should be focusing on the clear-cut differences between the signs and their associated curb colors, not on subjective judgments about leniency that we we’re unqualified to make. If I understand correctly, you’re advocating for OSM to only distinguish “Loading Only” from “No Parking” via the relatively obscure parking:condition:reason=loading_zone tag. That begs the question of why California would bother to mark these zones so differently than “No Parking” zones when they could have just added it as a footnote on a normal “No Parking” sign, similar to the “Fire Lane” in R26F.

The R25A and R25C signs both say loading only, which excludes both parking (turning off the ignition) and idling. Their time limits only differ because of the nature of what gets loaded or unloaded. There are also somewhat rarer SR63 signs, which prohibit idling but allow parking.

The legislation text you cited also does not mention that the red curb could imply a "no parking" sign, it reads

Red–No stopping, standing, or parking (buses may stop at a red zone marked for buses).

So, I read here that red means: neither stopping, nor standing, nor parking

This quote was excerpted from the basic introduction provided by the DMV, which is responsible for driver education but not a law enforcement authority. The legal code reads:

Red indicates no stopping, standing, or parking, whether the vehicle is attended or unattended, except that a bus may stop in a red zone marked or signposted as a bus loading zone.

The CA MUTCD also has legal force, having been incorporated by reference into the California Vehicle Code. It reads:

CVC Section 463 defines “parking”, which involves the standing of a vehicle, whether occupied or not. However, the temporary loading or unloading of merchandise or passengers is not considered parking. CVC Section 587 defines “stopping”, which involves the cessation of vehicle movement.

The CA MUTCD substitutes this passage for the national MUTCD’s passage about “No Standing” signs, making it clear that Caltrans considers loading zone signs to be equivalent, generally speaking.

Regardless of the legal code, why do so many red painted curbs in California say “No Parking” instead of “No Stopping”?

No Parking

The sheer prevalence of red curbs marked “No Parking” contradicts your interpretation of CVC 21458, which on the face of it could just as easily mean that the red color applies to three different kinds of restrictions. But would be presumptuous for StreetComplete to contradict all this real-world usage in favor of any individual layperson’s reading of the law, so hopefully the examples I provided gives us a little more certainty.

westnordost commented 2 years ago

That's a lot of text, let's keep it succinct.

noStandingLineStyle: white on curb

parking:condition=no_standing parking:condition:reason=passenger_loading_zone

If StreetComplete has no explicit support for "passenger loading zone" (but only "no standing", without hte reason), do you find it preferrable to leave it out then? I.e. don't present the option to select white curbs. Same with loading zones.

2.

The legal code reads:

Red indicates no stopping, standing, or parking, whether the vehicle is attended or unattended, except that a bus may stop in a red zone marked or signposted as a bus loading zone.

So you interpret the "or" in this legislation text as logical "or"s, like in a programming language: red curb = no (parking || standing || stopping) As far as I know, this is not the meaning of "not ... or" in natural language. Not a linguist, but it makes sense even from a programmer's perspective, as the above interpretation would require an imaginary parenthesis. And a statement like "a red curb could mean this, or that, or also that 🤷" would be oddly ambiguous for legislation text.

Finally, I find the very fact that a red curb needing a "no parking" label to be recognized as "no parking" rather than "no stopping" confirms the interpretation that a red curb without any additional signage is to be interpreted as "no stopping".

Basically, this is about "just a red curb", without any signage that modifies its meaning. Wouldn't you say that a red curb without any additional labels or signage would mean "no stopping" always?

BalooUriza commented 2 years ago

I agree. California's one of the few states that paints curbs and I don't go there often, but it's pretty obvious to me that yellow means no parking and red for no stopping there.

On Sat, Jan 22, 2022 at 5:56 AM Tobias Zwick @.***> wrote:

That's a lot of text, let's keep it succinct.

1.

noStandingLineStyle: white on curb

parking:condition=no_standing parking:condition:reason=passenger_loading_zone

If StreetComplete has no explicit support for "passenger loading zone" (but only "no standing", without hte reason), do you find it preferrable to leave it out then? I.e. don't present the option to select white curbs. Same with loading zones.

1.

The legal code reads:

Red indicates no stopping, standing, or parking, whether the vehicle is attended or unattended, except that a bus may stop in a red zone marked or signposted as a bus loading zone.

So you interpret the "or" in this legislation text as logical "or"s, like in a programming language: red curb = no (parking || standing || stopping) As far as I know, this is not the meaning of "not ... or" in natural language. Not a linguist, but it makes sense even from a programmer's perspective, as the above interpretation would require an imaginary parenthesis. And a statement like "a red curb could mean this, or that, or also that 🤷" would be oddly ambiguous for legislation text.

https://camo.githubusercontent.com/e7c659a76a3c26ef4a73a8eff1aebcafa465f82c2c604926a9a6fc9a680ea541/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f7468756d622f352f35372f4e6f5f7061726b696e672532435f666972655f6c616e652532435f54757374696e5f73746174696f6e2e6a70672f32343070782d4e6f5f7061726b696e672532435f666972655f6c616e652532435f54757374696e5f73746174696f6e2e6a7067

Finally, I find the very fact that a red curb needing a "no parking" label to be recognized as "no parking" rather than "no stopping" confirms the interpretation that a red curb without any additional signage is to be interpreted as "no stopping".

— Reply to this email directly, view it on GitHub https://github.com/streetcomplete/StreetComplete/issues/3663#issuecomment-1019213549, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAWDFBTJ7SJQTP5IBGCOUTLUXKLO5ANCNFSM5MOOG24A . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you are subscribed to this thread.Message ID: @.***>

1ec5 commented 2 years ago

If StreetComplete has no explicit support for "passenger loading zone" (but only "no standing", without hte reason), do you find it preferrable to leave it out then? I.e. don't present the option to select white curbs. Same with loading zones.

Yes, I think it would be better to leave out both yellow and white curbs unless they can be tagged as no_standing with some kind of distinction (either a reason or a time limit). In 17 years of living in California, I’ve never seen a yellow curb accompanied by a red “No Parking Any Time” sign, which you’d think would’ve happened by now, so this equivalence just really looks suspect.

So you interpret the "or" in this legislation text as logical "or"s, like in a programming language:

No, I’m saying it’s ambiguous. It wouldn’t be the first time grammatical ambiguity found its way into the law. Besides, who outside the group assembled here has read both the OSM Wiki and California Vehicle Code?

Finally, I find the very fact that a red curb needing a "no parking" label to be recognized as "no parking" rather than "no stopping" confirms the interpretation that a red curb without any additional signage is to be interpreted as "no stopping".

As the DMV guide indicates, other curb colors also have stenciled text, especially green curbs in order to establish the time limit. The text is completely optional, but it’s there for people who don’t often park curbside, are colorblind, or come from other states that don’t make the same distinctions. Yellow means a loading zone in California, but it means no parking in some eastern states, including Pennsylvania. (StreetComplete would have mappers tag both the same.)

This national guide from the FHWA points out that, despite red typically meaning “no stopping, standing, or parking”, it is also used for “no parking” fire lanes, which would explain the examples I gave above. “Loading Zone” does normally appear on R7-6 signs in other states, just not California.

Basically, this is about "just a red curb", without any signage that modifies its meaning. Wouldn't you say that a red curb without any additional labels or signage would mean "no stopping" always?

How would StreetComplete indicate this distinction? The current UI just has a red strip and a yellow strip. If the user encounters a red curb marked “No Parking” or an unmarked curb accompanied by a “No Parking” sign, they’ll choose the option that will end up tagging no_stopping.

BalooUriza commented 2 years ago

On Sun, Jan 23, 2022 at 12:24 AM Minh Nguyễn @.***> wrote:

So you interpret the "or" in this legislation text as logical "or"s, like in a programming language:

No, I’m saying it’s ambiguous. It wouldn’t be the first time grammatical ambiguity https://scholarship.law.umn.edu/cgi/viewcontent.cgi?article=1855&context=concomm#page=3 found its way into the law. Besides, who outside the group assembled here has read both the OSM Wiki and California Vehicle Code?

If a yellow curb really means “no parking”, can you find an example of a yellow curb accompanied by a red “No Parking Any Time” sign? I haven’t encountered one in 17 years of living in California, but maybe I’m not looking hard enough.

Painted curbs often are a replacement for signage, so you're kind of asking for the unlikely.

Finally, I find the very fact that a red curb needing a "no parking" label to be recognized as "no parking" rather than "no stopping" confirms the interpretation that a red curb without any additional signage is to be interpreted as "no stopping".

As the DMV guide indicates, other curb colors also have stenciled text, especially green curbs in order to establish the time limit. The text is completely optional, but it’s there for people who don’t often park curbside, are colorblind, or come from other states that don’t make the same distinctions. Yellow means a loading zone in California, but it means plain no parking in some eastern states http://www.doyourpark.com/yellow-curb-means/. StreetComplete would have mappers tag both the same.

Loading zone in the California context is so close to what everywhere else, including Oregon, just call a no parking zone, it's honestly hard to compare (since loading is allowed by default in no parking zones, and prohibited no stopping zones). Portland's most frequent curb color is yellow, and you're allowed to load passengers and cargo in a yellow zone the same as in California. Just not a red zone. Taxis are also banned from both (but good luck convincing illegal taxis like Uber and Lyft drivers of this, I'm not entirely convinced most of them have a license to drive at all, and it's very obvious they don't have a license to operate as a taxi as they do). LA and the bay area gets a little bit more specific, with green zones meaning that it's not necessarily a no parking or no stopping zone, with the specific resrictions routinely stencilled onto the curb in English. Those are the only regions I can think of offhand that also have standardized white zones (famously referenced and accurately described in the movie Airlane, where the white zone is for loading and unloading (passengers and their luggage only, you cannot otherwise stop or park in a white zone. There is no parking (or stopping) in a red zone).

This FHWA guide http://guide.saferoutesinfo.org/engineering/curb_paint_signs_and_school_pavement_legends.cfm points out that, despite red typically meaning “no stopping, standing, or parking”, it is also used for “no parking” fire lanes, which would explain the examples I gave above. “Loading Zone” does normally appear on [image: R7-6] https://camo.githubusercontent.com/32748a043feffa0d68658f426b77a5704d3b4e6333a17f16d86e1a21ffe890e3/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f352f35352f4d555443445f52372d362e737667 signs in other states, just not California.

Basically, this is about "just a red curb", without any signage that modifies its meaning. Wouldn't you say that a red curb without any additional labels or signage would mean "no stopping" always?

How would StreetComplete indicate this distinction? The current UI just has a red strip and a yellow strip. If the user encounters a red curb marked “No Parking”, they’ll choose the option that will end up tagging no_stopping.

Well, stopping is typically illegal in a fire zone, so seems consistent. I mean, there's obviously edge case exemptions to where this is not actually the case, but we have that with signs, too. The neighbor across the street illegally installed a "No Parking Anytime" sign in front of his house but it carries about the same legal force as a wet paper towel makes a cricket bat, despite looking everything the part...

westnordost commented 2 years ago

How would StreetComplete indicate this distinction? The current UI just has a red strip and a yellow strip. If the user encounters a red curb marked “No Parking” or an unmarked curb accompanied by a “No Parking” sign, they’ll choose the option that will end up tagging no_stopping.

So we are on the same boat though that a red curb without any label on it would be no stopping? I don't think users will select the red curb option if they see a red curb with "no parking" printed on it, because the red curb illustration is just the illustration. It is accompanied by a label that says "no stopping". The "no parking" illustration with a sign is also accompanied by a label that says "no parking". I'd expect that mappers would either see a contradiction and report this via a note or just select the "no parking" option instead.

1ec5 commented 2 years ago

So we are on the same boat though that a red curb without any label on it would be no stopping?

Without any label and without any sign, sure. A red curb without any explanatory text would typically be painted just for emphasis wherever other traffic laws would prohibit stopping anyways, such as near a stop sign, fire hydrant, or railroad crossing. These restrictions would be quite a granular level of micro mapping I personally bother with, but if a StreetComplete user wants to spend their time on it, more power to them.

I don't think users will select the red curb option if they see a red curb with "no parking" printed on it, because the red curb illustration is just the illustration. It is accompanied by a label that says "no stopping". The "no parking" illustration with a sign is also accompanied by a label that says "no parking".

Ah, right, I totally overlooked that label somehow.

The removal of these options in 55f7b1e11e0f0ab6bf86676d165d1370a4ab63bb looks good to me. I probably could’ve short-circuited this whole discussion by pointing out that yellow loading zone restrictions are only ever effective at certain times – a “Loading Only Any Time” sign would be rare and noncompliant – so it’s the asterisk option that the user would want anyways. Sorry for the longwinded discussion above.