From b888dbe3f4d01ee01ebe5517814f29bc5e770671 Mon Sep 17 00:00:00 2001 From: Markus Koch Date: Mon, 22 Mar 2021 18:01:05 +0100 Subject: [PATCH] scripts: Add fetch_bodiesofwater.sh --- scripts/geojson/maps/fetch_bodiesofwater.sh | 42 +++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100755 scripts/geojson/maps/fetch_bodiesofwater.sh diff --git a/scripts/geojson/maps/fetch_bodiesofwater.sh b/scripts/geojson/maps/fetch_bodiesofwater.sh new file mode 100755 index 0000000..0a2f589 --- /dev/null +++ b/scripts/geojson/maps/fetch_bodiesofwater.sh @@ -0,0 +1,42 @@ + #!/bin/bash + +json=`curl 'https://wiki.linux-forks.de/mediawiki/api.php?action=query&prop=revisions&rvprop=content&format=json&titles=Maps:BodiesOfWater'` +data=`echo "$json" | json_reformat | sed -e 's/\\\\n//g' -n -e 's/begin:mapdata\([^}]\+\)/\1/gp' | sed -e "s/|-|/}/g"` + +section="" +echo "[" +export IFS="}" +for entry in $data; do + this_section=`echo $entry | sed -n 's/.*== \([^=]\+\) ==.*/\1/p'` + if [[ "$this_section" != "" ]]; then + section=$this_section + fi + + if [[ "$section" != "$1" ]]; then + continue + fi + + name=`echo "$entry" | sed -n 's/\s*\([^|]\+\).*/\1/p' | sed 's/ $//'` + type=`echo "$entry" | sed -n 's/\s*\([^|]\+\)||\s*\([^|]\+\).*/\2/p' | sed 's/ $//'` + coord=`echo "$entry" | sed -n 's/.*||\s*\([^|]\+\).*/\1/p'` + if [[ "$type" == "district" ]]; then + continue; + fi + if [[ "$name" != "" && "$coord" != "" ]]; then + echo "{ \"type\": \"Feature\", + \"geometry\": { + \"type\": \"Polygon\", + \"coordinates\": [[ + $coord + ]] + }, + \"properties\": { + \"name\": \"$name\", + \"type\": \"$type\" + } +}," + fi +done +export IFS=" " +echo "{}" +echo "]"