From 9e7f219b112a2b2386780f45138594a04a34dbe0 Mon Sep 17 00:00:00 2001 From: Sergey Vartanov Date: Fri, 7 Aug 2015 01:04:38 +0300 Subject: [PATCH] Getting data from OpenStreetMap. --- .gitignore | 1 + lib/network.pyc | Bin 0 -> 2651 bytes osm_getter.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 lib/network.pyc create mode 100644 osm_getter.py diff --git a/.gitignore b/.gitignore index f570426..023cbf0 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ *.png *.pyc *.svg +missed_tags.yml # Test scheme files diff --git a/lib/network.pyc b/lib/network.pyc new file mode 100644 index 0000000000000000000000000000000000000000..56954cefb5fa28395614badee096dffc7cb878e4 GIT binary patch literal 2651 zcmcgu&5j#I5U%$4Z=H2En~+!wN;2#r7!a`pia=I?L`jemg$<0gNwgBOCNsUeV~=N? z?w)Ln>`H?M`wt^rJk>bmWpevsW99n}s{hP1o;fbEGH!!_c@e%b)q}k-nj` zueG~sinkldA9(hnGWM+D`Q(WcA0p{Uep`BJ-g9BztFK0f4@AGSGW_7xJ`zxPj71>~erWM4QyFuM)vBT3L zJ<1T!Bl{B}ftg1bI*$g3+2HvWGEtMu%42<7v%F(WZe(kn@p#?hj?9Qfn>Uf278OVT ziB?r}8yF_GZ*^3lc3hh*9BDZOa+2kj))EeFD^k~nA&IabK-XMZu(UqQZ!6?+MS>X+16^^R((H&s<_sBPt` z%c`l~!rN967nV!T--7g?(JtW3Twq*58CF@3H>ih(0k;E>zybh+`G#=Txehb|b6~Y0 z2qK}$_7Znhw(LE6%1EmTYBT{hyxrqDfI%kg^rHeo26d)|UUpGUekIh6GXS9=Vi~Yi zv)Wpe9W}YWj8YSD)))DJlz{OW+&5^@5Svpp#nysh1q})9sAWRu1;(2+Xfj11WDBg- za;Fz`CPebre7{uF+9KZ>Vn`ug2|R6ZNQJN7qwF3EutkG2QiC7XLgGvuvi@pF?!os8 zalMk%*mmzpC{I> z_=$}LjO-sUQfvw09=f;W~PX&%NxBoCR^=2XPgVbICob+%$oJTZyW zqQ%8%Yy)9OUeLl_%#-*H2^j78B?G?&_gAbIju9~yMh(tkF?fy5wjf^VjHJiqmoiCK z`gx?s^4~#*D~I{;ba`*XJKk} naFG|dF#)sn>R|tl!MSPIM|oVN`V;P}-Gr!?I9+_at(`vss616* literal 0 HcmV?d00001 diff --git a/osm_getter.py b/osm_getter.py new file mode 100644 index 0000000..a930a8f --- /dev/null +++ b/osm_getter.py @@ -0,0 +1,44 @@ +import re +import sys + +sys.path.append('lib') + +import network + +usage = '' + +if len(sys.argv) < 2: + print 'Usage: python ' + sys.argv[0] + ' ' + usage + sys.exit(0) + +boundary_box = sys.argv[1] + +matcher = re.match('(?P[0-9\\.-]*),(?P[0-9\\.-]*),' + \ + '(?P[0-9\\.-]*),(?P[0-9\\.-]*)', boundary_box) + +def error(message=None): + if message: + print 'Error: ' + message + '.' + else: + print 'Error.' + sys.exit(1) + +if not matcher: + error('invalid boundary box') +else: + try: + left = float(matcher.group('left')) + bottom = float(matcher.group('bottom')) + right = float(matcher.group('right')) + top = float(matcher.group('top')) + except Exception as e: + error('parsing boundary box') + if left >= right: + error('negative horisontal boundary') + if bottom >= top: + error('negative vertical boundary') + if right - left > 0.5 or top - bottom > 0.5: + error('box too big') + content = network.get_content('api.openstreetmap.org/api/0.6/map', + {'bbox': boundary_box}, + 'map/' + boundary_box + '.xml', 'html')