Aslam563's picture
Create app.py
396b046
import requests
api_key = 'f2f6425a67514f128a0806765cff28a2'
def geocode_location(location):
base_url = 'https://api.opencagedata.com/geocode/v1/json'
params = {
'q': location,
'key': api_key,
}
response = requests.get(base_url, params=params)
data = response.json()
if 'results' in data and data['results']:
# Extract latitude and longitude from the first result
first_result = data['results'][0]
lat = first_result['geometry']['lat']
lon = first_result['geometry']['lng']
return lat, lon
else:
return None
def get_nearest_hospitals(city,country, radius=1000):
location=city+','+country
coordinates=geocode_location(location)
overpass_url = "https://overpass-api.de/api/interpreter"
query = f"""
[out:json];
(
node["amenity"="hospital"](around:{radius},{coordinates[0]},{coordinates[1]});
way["amenity"="hospital"](around:{radius},{coordinates[0]},{coordinates[1]});
relation["amenity"="hospital"](around:{radius},{coordinates[0]},{coordinates[1]});
);
out center;
"""
response_overpass = requests.get(overpass_url, params={'data': query})
data_location = response_overpass.json()
result=''
for item in data_location['elements']:
if 'tags' in item:
result = f"Name: {item['tags'].get('name', 'N/A')}\n"
# Check if 'lat' and 'lon' exist before adding them to the result
return result
interface=gr.Interface(get_nearest_hospitals,inputs=['text','text'],outputs=['text'],title='Nearest Hospitals finder for Severe Conditions',description='Enter your city and location to get nearest hopsitals if condition is Severe')
interface.launch(share=True)