From 69e3a3ff1d2126fc82fb963942f9238b601bfa4a Mon Sep 17 00:00:00 2001 From: typebrook Date: Mon, 11 Nov 2019 11:58:16 +0800 Subject: update --- utils/osm | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) (limited to 'utils/osm') diff --git a/utils/osm b/utils/osm index 1a79059..7ddae17 100644 --- a/utils/osm +++ b/utils/osm @@ -5,7 +5,7 @@ FILENAME=$0 osm.help() { echo " COMMANDS: - osm.utils.edit + util.osm.edit osm.get osm.get.full osm.get.history @@ -55,28 +55,38 @@ osm.in_relations() { tee /tmp/osm &&\ echo relations contain $1 $2 are copied into /tmp/osm > /dev/tty } +osm.in_relations_as() { + ele_pattern="(node|way|relation)" + + osm.in_relations $1 $2 |\ + sed -nr "/<$ele_pattern/,/<\/$ele_pattern/ { + /<$ele_pattern/ {s/.* id=\"([^\"]+)\".*/\1/;h} + / /dev/tty } -osm.extract.tag() { - sed -nr "/<(node|way|relation)/,/<\/(node|way|relation)/ { +osm.list.tag() { + ele_pattern="(node|way|relation)" + sed -nr "/<$ele_pattern/,/<\/$ele_pattern/ { / /tmp/osm + echo $content | osm.list.ids | tr ' ' ',' > /tmp/osm for tag in "$@" do echo $content |\ - osm.extract.tag $tag > /tmp/osm.tag.$tag + osm.list.tag $tag > /tmp/osm.tag.$tag done paste -d',' /tmp/osm /tmp/osm.tag.* @@ -90,7 +100,7 @@ osm.extract.id() { echo "" } # get ids from .osm format STDIN -osm.extract.ids() { +osm.list.ids() { sed -nr 's/.*<(node|way|relation) id=\"([^"]+)\".*/\1 \2/p' } # upload .osm format STDIN to a given changeset @@ -121,6 +131,10 @@ osm.file.extract() { file=$1; shift osmium getid $file $@ --output-format=osm } +osm.file.extract.full() { + file=$1; shift + osmium getid $file $@ --output-format=osm --add-referenced +} # update .osm format STDIN with key-value osm.update() { # remove original tag&value -- cgit v1.2.3-70-g09d2