{"id":17269493,"url":"https://github.com/systemed/tagmangle","last_synced_at":"2025-07-21T04:33:16.234Z","repository":{"id":26412228,"uuid":"29862286","full_name":"systemed/tagmangle","owner":"systemed","description":"Add or replace way tags in an OpenStreetMap .pbf","archived":false,"fork":false,"pushed_at":"2022-12-29T16:18:12.000Z","size":41,"stargazers_count":11,"open_issues_count":2,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-14T08:11:39.340Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/systemed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-26T13:32:05.000Z","updated_at":"2024-07-05T19:06:14.000Z","dependencies_parsed_at":"2023-01-14T04:36:10.933Z","dependency_job_id":null,"html_url":"https://github.com/systemed/tagmangle","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/systemed/tagmangle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systemed%2Ftagmangle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systemed%2Ftagmangle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systemed%2Ftagmangle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systemed%2Ftagmangle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/systemed","download_url":"https://codeload.github.com/systemed/tagmangle/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systemed%2Ftagmangle/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266240945,"owners_count":23898062,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-10-15T08:16:25.954Z","updated_at":"2025-07-21T04:33:16.220Z","avatar_url":"https://github.com/systemed.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tagmangle\n\nA simple C++ utility to insert (or replace) way tags in an .osm.pbf file according to a supplied plain-text file.\n\nIn other words, you can create a text file which says way 9789873's highway tag should be 'residential', way 9789874 should be 'unclassified', and so on. Run tagmangle with this file and a pbf, and the result will be a new pbf in which those values have been set.\n\nYou can apply several text files to one pbf in the same run, if you have multiple keys to change.\n\n## Compiling\n\nYou'll need the protobuf library. On OS X you can install this with Homebrew with `brew install protobuf`. On Ubuntu, `apt-get libprotobuf-dev protobuf-compiler`.\n\nYou can then compile tagmangle like this:\n\n     clang++ -o tagmangle osmformat.pb.cc tagmangle.cpp -std=c++11 -lz `pkg-config --cflags --libs protobuf`\n\nIf you receive compilation errors related to protobuf, try recompiling the .pbf reader:\n\n     protoc --cpp_out=. osmformat.proto\n\nand then building tagmangle again.\n\n## Running\n\nCreate a text file with each way ID and its value on a new line, separated by a space. See example.txt for an example.\n\nRun tagmangle with this syntax:\n\n    tagmangle input_pbf output_pbf tag_key_1 text_file_1 [tag_key_2 text_file_2 ...]\n\nFor example:\n\n    ./tagmangle oxfordshire-latest.osm.pbf output.osm.pbf highway example.txt\n\n## Notes\n\nThis is my first ever C++ program. It is doubtless horrible in many many ways. Be gentle.\n\nIt doesn't check whether the PBF block size would be exceeded. In practice this is unlikely to be a problem.\n\nThe PBF handling code in pbf_blocks.cpp might be useful as an absolute bare-bones PBF parser for similar projects.\n\nNote that BlobHeader and Blob have been added to the commonly-used version of osmformat.proto.\n\nRichard Fairhurst, January 2015\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsystemed%2Ftagmangle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsystemed%2Ftagmangle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsystemed%2Ftagmangle/lists"}