From 8285ad826861630cecdbc5ac480b93c455797c2d Mon Sep 17 00:00:00 2001 From: Vladislav Skukov Date: Sat, 18 May 2019 20:59:28 +0500 Subject: [PATCH] add objects descriptions from square --- osm/osm.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 osm/osm.py diff --git a/osm/osm.py b/osm/osm.py new file mode 100644 index 0000000..194af89 --- /dev/null +++ b/osm/osm.py @@ -0,0 +1,29 @@ +from osmapi import OsmApi +import pprint + +Api = OsmApi() + +min_lon, min_lat, max_lon, max_lat = 60.5906827939,56.8322320824,60.5942769539,56.834157283 + + +def get_objects_from_square(min_lon, min_lat, max_lon, max_lat): + objects = Api.Map(min_lon, min_lat, max_lon, max_lat) + return list(filter(lambda o: + o['data']['tag'] != {} + and 'lat' in o['data'] + and 'lon' in o['data'] + and 'amenity' in o['data']['tag'] + and 'name' in o['data']['tag'], objects)) + + +def describe_objects(min_lon, min_lat, max_lon, max_lat): + objects = [ + {'name': x['data']['tag']['name'], + 'lat': x['data']['lat'], + 'lon': x['data']['lon']} for x in get_objects_from_square(min_lon, min_lat, max_lon, max_lat)] + return {'center': {'lat': (min_lat + max_lat) / 2, 'lon': (min_lon + max_lon) / 2}, + 'objects': objects} + + +objects = describe_objects(min_lon, min_lat, max_lon, max_lat) +print(objects) \ No newline at end of file -- 2.50.1