{"id":20221281,"url":"https://github.com/tsmock/sidewalks","last_synced_at":"2026-01-25T11:06:02.453Z","repository":{"id":232473930,"uuid":"784442564","full_name":"tsmock/sidewalks","owner":"tsmock","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-17T18:48:23.000Z","size":311,"stargazers_count":4,"open_issues_count":6,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-22T02:42:29.015Z","etag":null,"topics":["josm","josm-plugin","sidewalk"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tsmock.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-09T21:32:59.000Z","updated_at":"2025-09-13T15:33:13.000Z","dependencies_parsed_at":"2024-04-15T20:27:42.466Z","dependency_job_id":"90e7542c-b0bf-4907-af49-54b052259594","html_url":"https://github.com/tsmock/sidewalks","commit_stats":null,"previous_names":["tsmock/sidewalks"],"tags_count":19,"template":false,"template_full_name":"tsmock/00_plugin_dir_template","purl":"pkg:github/tsmock/sidewalks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsmock%2Fsidewalks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsmock%2Fsidewalks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsmock%2Fsidewalks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsmock%2Fsidewalks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tsmock","download_url":"https://codeload.github.com/tsmock/sidewalks/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsmock%2Fsidewalks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28752498,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T10:25:12.305Z","status":"ssl_error","status_checked_at":"2026-01-25T10:25:11.933Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["josm","josm-plugin","sidewalk"],"created_at":"2024-11-14T06:52:46.083Z","updated_at":"2026-01-25T11:06:02.431Z","avatar_url":"https://github.com/tsmock.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JOSM Sidewalks\n## Installation\nJOSM Preferences → `Plugins` → `sidewalks`\n\n## Usage\n### Automatic crossing ways\nEnter the mode via `Mode` → `Sidewalk Mode`.\n\nOnce in the mode, you can start mapping sidewalks. It works in a similar manner\nto the `Draw` mode with some special actions for sidewalks. Of specific note:\n* When adding nodes to a way with `highway=footway`, if the `footway` crosses\n  a road and is sufficiently short, a crossing way will be created. It is\n  recommended to put a node where the sidewalk stops and starts on either side\n  of the road.\n\n### Synchronizing keys between crossing ways and nodes\nWhen adding tags to a crossing way _or_ node, common crossing tags will be\ncopied from the edited way or node to the attached node or way. Current keys\nthat are synchronized:\n* `bicycle`\n* `crossing`\n* `crossing:continuous`\n* `crossing:markings`\n* `crossing:signals`\n* `crossing_ref`\n* `cycleway`\n* `flashing_lights`\n* `horse`\n* `traffic_signals:sound`\n* `traffic_signals:vibration`\n### Parallel way creation\n`Data` → `Create parallel sidewalks`\n\nThis just creates parallel ways to a highway. It is recommended to check the\ngeometry of the highway before using this tool.\n\n## Useful overpass queries\n### Count and length of sidewalks touched by a user after a set date in an area\n```\n// Count and length of all sidewalks touched in Mesa County by vorpalblade after April 1 2024\n[out:json][timeout:25];\n{{geocodeArea:\"Mesa County, Colorado, United States\"}}-\u003e.searchArea;\nway[\"highway\"=\"footway\"](newer:\"2024-04-01T00:00:00Z\")(user_touched:vorpalblade)(area.searchArea);\nmake stat number=count(ways),length=sum(length());\nout;\n```\nExplanation:\n* `[out:json][timeout:25]`: Set the output to `json`, timeout after 25 seconds\n* `{{geocodeArea:\"Mesa County, Colorado, United States\"}}-\u003e.searchArea;`: Set the search area to [Mesa County, Colorado](https://www.openstreetmap.org/relation/1411341)\n* `way[\"highway\"=\"footway\"]`: Find footways\n  * `(newer:\"2024-04-01T00:00:00Z\")`: Filter footways that were touched after April 01, 2024\n  * `(user_touched:vorpalblade)`: Filter footways that were touched by the user `vorpalblade`\n  * `(area.searchArea)`: Filter footways to only be inside the search area\n* `make stat number=count(ways),length=sum(length());`: Output a count of the ways (`count(ways)`) and the sum of the length of those ways (`sum(length())`)\n* `out`: Output the json\n\n[Sample Query](https://overpass-turbo.eu/?q=Ly8gQ291bnQgYW5kIGxlbmd0aCBvZsSIbGwgc2lkZXdhbGtzIHTEhGNoZcSLaW4gTWVzYcSCxITEhnkgYsS0dm9ycMSfYmxhxJzEiGZ0ZXIgQXByacSYMSAyMDI0ClvEhHQ6anNvbl1bdGltZcWUOjI1XTsKe3tnxaBjb8ScQXJlYToixK3Er8SxxIV0eSzEsWzEucS_b8W7VW5pxYPEi1N0YcWDcyJ9fS0-LnPFsXLEpsWvxbHFpsSeeVsiaGlnaMaZIj0iZm9vdMahXShuxJ3FhMWzxY7FkC0wNMayMVQwMDrGuMa6MFoiKSh1xpJyX8SkdcSmxKg6xLjEusS8xL7EnMeAYcWwYcaRxpPGlceSKcWmbWFrZcSZxojEh251bWLFhD3FrMW4KMaZcyksxI3Ej8SRPXPHoijHrsSQaCgpx5gKxZQ7\u0026c=AdVUgjuveK\u0026R=)\n(you'll have to hit `show data`)\n\n## Advanced preferences\n| Preference                            | Default value | Description                                                                                           |\n|:--------------------------------------|:-------------:|:------------------------------------------------------------------------------------------------------|\n| `sidewalk.crossing.kerb.tags`         |    `[{}]`     | Any additional tags to add to the `kerb` node                                                         |\n| `sidewalk.crossing.kerb`              |    `true`     | If `true`, add `kerb` tags to crossing nodes connected to sidewalks                                   |\n| `sidewalk.crossing.maxlength`         |     `30`      | The maximum length for a crossing way                                                                 |\n| `sidewalk.crossing.node.maxdistance`  |      `6`      | Attempt to merge nodes with crossing tags at most this distance (m) away when creating crossing nodes |\n| `sidewalk.crossing.node.dupedistance` |      `1`      | Attempt to merge nodes at most this distance (m) away when creating crossing nodes                    |\n| `sidewalk.crossing.sync`              |    `true`     | If `true`, synchronize tags between the crossing way and the crossing node                            |\n\n## License\nGPLv2 or any later version\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsmock%2Fsidewalks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftsmock%2Fsidewalks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsmock%2Fsidewalks/lists"}