summaryrefslogtreecommitdiff
path: root/localosmfeature2geojson
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2014-02-27 15:52:22 +0100
committerJonas Smedegaard <dr@jones.dk>2014-02-27 15:52:22 +0100
commitf575c9d0633c2a1cae0accde3d539a0c2dff5b55 (patch)
tree0a65710776eb956be4658b7b197a913691f412be /localosmfeature2geojson
parent306e34970a7e97e31da1fa8c29c0dfc97755ce65 (diff)
Rename localosmpath2geojson → localosmfeature2geojson.
Diffstat (limited to 'localosmfeature2geojson')
-rwxr-xr-xlocalosmfeature2geojson40
1 files changed, 40 insertions, 0 deletions
diff --git a/localosmfeature2geojson b/localosmfeature2geojson
new file mode 100755
index 0000000..6ff317b
--- /dev/null
+++ b/localosmfeature2geojson
@@ -0,0 +1,40 @@
+#!/bin/sh
+#
+# Copyright © 2014 Jonas Smedegaard <dr@jones.dk>
+# Description: Tidy GeoJSON e.g. from <http://tyrasd.github.io/osmtogeojson/>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+# Depends: gdal-bin perl-modules
+
+set -eu
+
+features=$*
+
+onlineosmxml2geojson() {
+ set -e
+ echo '['
+ first=yes
+ for feature in "$@"; do
+ url="http://www.openstreetmap.org/api/0.6/relation/$feature/full"
+ [ -n "$first" ] || echo ','
+ ogr2ogr --config OSM_USE_CUSTOM_INDEXING NO -f GeoJSON /vsistdout/ /vsicurl_streaming/"$url" multilinestrings
+ first=
+ done
+ echo ']'
+}
+
+onlineosmxml2geojson $features \
+ | json_pp -json_opt pretty,canonical \
+ | perl -0 -pe 's/ /\t/g; s/},\s*{/}, {/g; s/\[\s*([\d.,]+)\s*([\d.]+)\s*\]/[$1 $2]/g'