From 51b057d22fcb2c376beb59afc9d1391547d52fd4 Mon Sep 17 00:00:00 2001 From: Vladislav Skukov Date: Sun, 19 May 2019 01:13:39 +0500 Subject: [PATCH] Add districts to osm --- osm/osm.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/osm/osm.py b/osm/osm.py index 272ed7e..0d2ead3 100644 --- a/osm/osm.py +++ b/osm/osm.py @@ -5,7 +5,7 @@ import re Api = OsmApi() pp = pprint.PrettyPrinter(indent=4) -min_lon, min_lat, max_lon, max_lat = 60.5882028953,56.8213023404,60.6033090964,56.8279011878 +min_lon, min_lat, max_lon, max_lat = 60.615948,56.803766,60.65337,56.820586 def remove_duplicates(l): return [dict(t) for t in {tuple(d.items()) for d in l}] @@ -80,6 +80,13 @@ def convert_vehicle_type(vehicle_type): else: return 'unknown' +def filter_districts(objects): + return list(filter(lambda o: + o['data']['tag'] != {} + and 'type' in o['data']['tag'] + and (o['data']['tag']['type'] == 'boundary' or 'boundary' in o['data']['tag']) + and 'name' in o['data']['tag'], objects)) + def describe_objects(min_lat, min_lon, max_lat, max_lon): objects = get_objects_from_square(min_lon, min_lat, max_lon, max_lat) streets = [ @@ -96,6 +103,9 @@ def describe_objects(min_lat, min_lon, max_lat, max_lon): sightseeings = [ {'name': x['data']['tag']['name']} for x in filter_sightseeings(objects) ] + districts = [ + {'name': x['data']['tag']['name']} for x in filter_districts(objects) + ] amenities = [ {'name': x['data']['tag']['name'], 'type': x['data']['tag']['amenity'], @@ -106,6 +116,7 @@ def describe_objects(min_lat, min_lon, max_lat, max_lon): 'vehicles': remove_duplicates(vehicles), 'buildings': buildings, 'sightseeings': sightseeings, + 'districts': districts, 'amenities': amenities} -- 2.50.1