Skip to content

Commit

Permalink
Extract flag for ignoring changeset,user,id for GDPR compliance [#12]
Browse files Browse the repository at this point in the history
  • Loading branch information
bdon committed Jun 4, 2020
1 parent 93546e4 commit 2cd598b
Showing 1 changed file with 18 additions and 9 deletions.
27 changes: 18 additions & 9 deletions src/extract.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ void cmdExtract(int argc, char * argv[]) {
cxxopts::Options cmd_options("Extract", "Create an .osm.pbf from an .osmx file.");
cmd_options.add_options()
("v,verbose", "Verbose output")
("noUserData", "Don't include changeset,uid,user fields (GDPR compliance)")
("jsonOutput", "JSON progress output")
("cmd", "Command to run", cxxopts::value<string>())
("osmx", "Input .osmx", cxxopts::value<string>())
Expand Down Expand Up @@ -105,6 +106,8 @@ void cmdExtract(int argc, char * argv[]) {
bool jsonOutput = result.count("jsonOutput") > 0;
if (jsonOutput) prog.print();

bool includeUserData = result.count("noUserData") == 0;

std::unique_ptr<Region> region;
if (result.count("bbox")) region = std::make_unique<Region>(result["bbox"].as<string>(),"bbox");
else if (result.count("disc")) region = std::make_unique<Region>(result["disc"].as<string>(),"disc");
Expand Down Expand Up @@ -308,9 +311,11 @@ void cmdExtract(int argc, char * argv[]) {
auto metadata = node.getMetadata();
node_builder.set_version(metadata.getVersion());
node_builder.set_timestamp(metadata.getTimestamp());
node_builder.set_changeset(metadata.getChangeset());
node_builder.set_user(metadata.getUser());
node_builder.set_uid(metadata.getUid());
if (includeUserData) {
node_builder.set_changeset(metadata.getChangeset());
node_builder.set_user(metadata.getUser());
node_builder.set_uid(metadata.getUid());
}

auto tags = node.getTags();
osmium::builder::TagListBuilder tag_builder{node_builder};
Expand All @@ -337,9 +342,11 @@ void cmdExtract(int argc, char * argv[]) {
auto metadata = way.getMetadata();
way_builder.set_version(metadata.getVersion());
way_builder.set_timestamp(metadata.getTimestamp());
way_builder.set_changeset(metadata.getChangeset());
way_builder.set_user(metadata.getUser());
way_builder.set_uid(metadata.getUid());
if (includeUserData) {
way_builder.set_changeset(metadata.getChangeset());
way_builder.set_user(metadata.getUser());
way_builder.set_uid(metadata.getUid());
}

{
osmium::builder::WayNodeListBuilder way_node_list_builder{way_builder};
Expand Down Expand Up @@ -373,9 +380,11 @@ void cmdExtract(int argc, char * argv[]) {
auto metadata = relation.getMetadata();
relation_builder.set_version(metadata.getVersion());
relation_builder.set_timestamp(metadata.getTimestamp());
relation_builder.set_changeset(metadata.getChangeset());
relation_builder.set_user(metadata.getUser());
relation_builder.set_uid(metadata.getUid());
if (includeUserData) {
relation_builder.set_changeset(metadata.getChangeset());
relation_builder.set_user(metadata.getUser());
relation_builder.set_uid(metadata.getUid());
}

{
osmium::builder::RelationMemberListBuilder relation_member_list_builder{relation_builder};
Expand Down

0 comments on commit 2cd598b

Please sign in to comment.