lawsoc-scraper/test/osm_rest-test.py

76 lines
2.0 KiB
Python

import requests
import json
from geopy.geocoders import Nominatim
# url = 'http://nominatim.openstreetmap.org/'
# params = {'q': '157+High+Street,+Prestatyn,+Conwy', 'format': 'json', 'addressdetails': 1, 'limit': 1}
# response = requests.get(url, params=params).json()
# print(type(response))
# print(len(response))
# print(response)
# json_response = response[0]
# print(json.dumps(json_response, sort_keys=False, indent=4, separators=(',', ': ')))
url = 'http://nominatim.openstreetmap.org/reverse'
# geolocator = Nominatim()
geolocator = Nominatim(user_agent="Test_normalizer") # user_agent is a parameter to the Nominatim class
address, (latitude, longitude) = geolocator.reverse("40.752067, -73.977578")
print(address, latitude, longitude)
params = {'q': '157+High+Street,+Prestatyn,+Conwy', 'format': 'json', 'addressdetails': 1, 'limit': 1}
streetname = '157 High Street'
cityname = 'Prestatyn'
statename = 'Conwy'
countryname = 'UK'
postcode = 'LL19 9AP'
address, (latitude, longitude) = geolocator.geocode({'street': streetname, 'postalcode': postcode})
print(address, latitude, longitude)
def osm_address_lookup(dict, geolocator):
if 'address' in dict:
streetname = dict['address'][0]
postcode = dict['address'][-2]
address, (latitude, longitude) = geolocator.geocode({'street': streetname, 'postalcode': postcode})
else:
print("No address.")
lat = dict['location']['lat']
lon = dict["location"]['lon']
latlon = dict["location"]['lat'] + "," + dict["location"]['lon']
if 'location' in dict:
print(geolocator.reverse(latlon))
else:
pass
address = [
"61 Coldharbour Lane",
"Hayes",
"Middlesex",
"UB3 3EE",
"England"
]
location = {
"lat": "51.50828",
"lon": "-0.4145179"
}
dict = {'address': address, 'location': location}
geolocator = Nominatim()
osm_address_lookup(dict, geolocator)
dict = {'location': location}
geolocator = Nominatim()
osm_address_lookup(dict, geolocator)