@@ -15,7 +15,7 @@ categories = ['map']
1515paging = False
1616
1717# search-url
18−url = 'https://nominatim.openstreetmap.org/search/{query}?format=json&polygon_geojson=1'
18+url = 'https://nominatim.openstreetmap.org/search/{query}?format=json&polygon_geojson=1&addressdetails=1'
1919
2020result_base_url = 'https://openstreetmap.org/{osm_type}/{osm_id}'
2121
@@ -47,6 +47,30 @@ def response(resp):
4747 geojson = {u'type':u'Point',
4848 u'coordinates':[r['lon'],r['lat']]}
4949
50+ address_raw = r.get('address')
51+ address = {}
52+
53+ # get name
54+ if r['class'] == 'amenity' or\
55+ r['class'] == 'shop' or\
56+ r['class'] == 'tourism' or\
57+ r['class'] == 'leisure':
58+ if address_raw.get('address29'):
59+ address = {'name':address_raw.get('address29')}
60+ else:
61+ address = {'name':address_raw.get(r['type'])}
62+
63+ # add rest of adressdata, if something is already found
64+ if address.get('name'):
65+ address.update({'house_number':address_raw.get('house_number'),
66+ 'road':address_raw.get('road'),
67+ 'locality':address_raw.get('town', address_raw.get('village')),
68+ 'postcode':address_raw.get('postcode'),
69+ 'country':address_raw.get('country'),
70+ 'country_code':address_raw.get('country_code')})
71+ else:
72+ address = None
73+
5074 # append result
5175 results.append({'template': 'map.html',
5276 'title': title,
@@ -55,6 +79,7 @@ def response(resp):
5579 'latitude': r['lat'],
5680 'boundingbox': r['boundingbox'],
5781 'geojson': geojson,
82+ 'address': address,
5883 'url': url})
5984
6085 # return results