CurtisGreen / opensidewalkmap

Easily visualize sidewalks
https://www.opensidewalkmap.com
MIT License
4 stars 2 forks source link

DRAFT: Display Sidewalk Infrastructure Accurately on OpenSidewalkMap #3

Open thompsondt opened 3 weeks ago

thompsondt commented 3 weeks ago

As a: OSM Active Transportation Infrastructure Mapper

I want: Sidewalks that are tagged on roads (as "sidewalk=*") and sidewalks mapped as separate geometry to be accurately displayed on OpenSidewalkMap

So that: Users can have a complete and accurate view of sidewalk infrastructure for better navigation and planning.

Acceptance Criteria:

  1. Rendering Sidewalks:

    • Sidewalks tagged as "sidewalk=*" on roads should be rendered in blue on the map.
    • Sidewalks mapped as separate geometry should be rendered in red on the map.
  2. Data Integration:

    • The system should be able to identify and differentiate between sidewalks tagged on roads and sidewalks mapped as separate geometry.
    • Ensure that both types of sidewalk data are integrated and displayed correctly when the map is rendered.
  3. User Interface:

    • The map legend should clearly indicate that blue lines represent sidewalks tagged on roads and red lines represent sidewalks mapped as separate geometry.
    • Users should be able to toggle the visibility of each type of sidewalk data.
  4. Performance:

    • The map should load both types of sidewalk data without significant delay.
    • The rendering of sidewalk data should not affect the performance of other map features.

Tasks:

  1. Research and Analysis:

    • Identify the current limitations in how OpenSidewalkMap processes and displays sidewalk data.
    • Review the OSM tagging conventions and data structure for sidewalks.
  2. Data Processing:

    • Develop a method to extract and differentiate sidewalks tagged as "sidewalk=*" on roads and those mapped as separate geometry.
    • Create a data processing pipeline that integrates both types of sidewalk data for rendering.
  3. Map Rendering:

    • Implement the rendering logic to display sidewalks tagged on roads in blue.
    • Implement the rendering logic to display sidewalks mapped as separate geometry in red.
  4. User Interface Enhancements:

    • Add a map legend to include the new color coding for sidewalks.
    • Add toggle options for users to view or hide each type of sidewalk data.
  5. Testing and Validation:

    • Conduct thorough testing to ensure sidewalks are displayed correctly according to their tags and geometry.
    • Validate the accuracy and performance of the map rendering with real-world OSM data.

Discussion:

hbruch commented 3 weeks ago

The rendering should reflect the value of the sidewalk attribute. I.e. the rendered geometry should be shifted by an offset left/right or, in case of both be drawn on both sides of the road.

thompsondt commented 3 weeks ago

Quick mockup... How this might look if blue indicated a sidewalk=* tag on a street, rather than sidewalks mapped as separated geometry. In this case, I'm showing Birch St as being tagged this way, whereas the sidewalks have been mapped separately on Cedar St and Main St.

Blue Highlight

image

Red Highlight

In this second example, I'm showing Birch St in the same color as the others marked with separated geometry.

image

Dark Red Border

In this third example, I'm showing Birch St both in a similar color to the above, but the borders of that street section are changed to reflect the sidewalk=* tag.

image

thompsondt commented 3 weeks ago

Sidewalks tagged as "sidewalk=*" on roads should be rendered in blue on the map.

This might need to be narrowed to a set of potential matches:

  1. left
  2. right
  3. both

sidewalk=* opens us up to potential unwanted matches, for example: sidewalk=separate.

CurtisGreen commented 3 weeks ago

Hey guys, I appreciate the interest in the project and I think this idea is very cool. I only work on this occasionally when I have extra free time, and I've got a few more small features I'd like to get in first like saving position in local storage; so it'll likely be a while till I get to this. Any contributions are welcome though and I'll definitely review them

FYI there's a tool that will let you easily generate separate sidewalk geometry from road sidewalks and import them into OSM: https://github.com/kauevestena/osm_sidewalkreator

Could be a useful workaround in the meantime

thompsondt commented 3 weeks ago

I'd like to continue with designing this. If nobody comes along for implementation I may as well come through to try implementing the feature as well.

thompsondt commented 1 week ago

Quick update as I'm getting back to this. I'm able to query and show both sidewalks AND streets with sidewalks in red.

image

thompsondt commented 1 week ago

I propose breaking this issue down into several potential updates:

  1. Returning sidewalks AND streets with sidewalks as part of a single layer, all rendered in the same style
  2. Separating the two kinds of data into two layers, potentially with visually distinct styling
  3. Introducing a feature to toggle the visibility of each layer

This proposal seeks to deliver the features into production sooner, in smaller shippable increments. This encourages earlier user feedback and informs subsequent updates and improvements.